常見Web應用安全漏洞原理與防御介紹
Web應用是指采用B/S架構、通過HTTP/HTTPS協議提供服務的統稱。隨著互聯網的普及,Web應用已經融入到我們生活中的方方面面。在企業信息化的過程中,越來越多的應用也都架設在Web平臺上。在這些Web訪問中,大多數應用不是靜態的網頁瀏覽,而是涉及到服務器側的動態處理。此時,如果技術人員的安全意識不足,例如對程序參數輸入等檢查不嚴格,就會導致Web應用安全問題層出不窮。輕則篡改網頁內容,重則竊取重要內部數據,更為嚴重的則是在網頁中植入惡意代碼,使得網站訪問者受到侵害。這使得越來越多的用戶關注應用層的安全問題,Web應用安全的關注度也逐漸升溫。
本文根據當前Web應用的安全情況,列舉了Web應用程序常見的攻擊原理及危害,并給出如何避免遭受Web攻擊的建議。
SQL注入
當應用程序將用戶輸入的內容,拼接到SQL語句中,一起提交給數據庫執行時,就會產生SQL注入威脅。由于用戶的輸入,也是SQL語句的一部分,所以攻擊者可以利用這部分可以控制的內容,注入自己定義的語句,改變SQL語句執行邏輯,讓數據庫執行任意自己需要的指令。通過控制部分SQL語句,攻擊者可以查洵數據庫中任何自己需要的數據,利用數據庫的一些特性,可以直接獲取數據庫服務器的系統權限。
本來SQL注入攻擊需要攻擊者對SQL語句非常了解,所以對攻擊者的技術有一定要求。但是現在已經出現了大量SQL注入利用工具,可以讓任何攻擊者,只要點幾下鼠標,就能達到攻擊效果,這使得SQL注入的威脅極大增加。

XSS
跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets,
CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS。惡意攻擊者往Web頁面里插入惡意html 代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執行,從而達到惡意攻擊用戶的特殊目的。
反射型跨站腳本攻擊
攻擊者會通過社會工程學手段,發送一個URL連接給用戶打開,在用戶打開頁面的同時,瀏覽器會執行頁面中嵌入的惡意腳本。

存儲型跨站腳本攻擊
攻擊者利用web應用程序提供的錄入或修改數據功能,將數據存儲到服務器或用戶 cookie中,當其他用戶瀏覽展示該數據的頁面時,瀏覽器會執行頁面中嵌入的惡意腳本。所有瀏覽者都會受到攻擊。

命令注入
命令注入和SQL注入差不多,只不過SQL注入是針對數據庫的,而OS命令注入是針對操作系統的。OS命令注入攻擊指通過Web應用,執行非法的操作系統命令達到攻擊的目的。只要在能調用Shell函數的地方就有存在被攻擊的風險。倘若調用Shell時存在疏漏,就可以執行插入的非法命令。
命令注入攻擊可以向Shell發送命令,讓Windows或Linux操作系統的命令行啟動程序。也就是說,通過命令注入攻擊可執行操作系統上安裝著的各種程序。

跨站請求偽造
CSRF(Cross Site Request Forgery),利用已登錄的用戶身份,以用戶的名義發送惡意請求,完成非法操作。
例如,如果用戶瀏覽并信任具有CSRF漏洞的網站A,則瀏覽器會生成相應的cookie,并且用戶訪問危險的網站B而不退出網站。危險網站B要求訪問網站A并提出要求。瀏覽器使用用戶的cookie信息訪問網站A。由于網站A不知道是用戶自身發出的請求還是危險網站B發出的請求,因此將處理危險網站B的請求,從而完成了用戶操作目的的模擬。這是CSRF攻擊的基本思路。

越權訪問
越權漏洞是指應用在檢查授權(Authorization)時存在紕漏,使得攻擊者在獲得低權限用戶帳后后,可以利用一些方式繞過權限檢查,訪問或者操作到原本無權訪問的高權限功能。在實際的代碼安全審查中,這類漏洞往往很難通過工具進行自動化檢測,因此在實際應用中危害很大。其與未授權訪問有一定差別。目前存在著兩種越權操作類型:垂直越權操作和水平越權操作。
垂直越權漏洞,也稱為權限提升,是一種“基于URL的訪問控制”設計缺陷引起的漏洞。由于Web應用程序沒有做權限控制或者僅在菜單上做了權限控制,導致惡意用戶只要猜測其他管理頁面的URL,就可以訪問或控制其他角色擁有的數據或頁面,達到權限提升的目的。
水平越權漏洞,是一種“基于數據的訪問控制”設計缺陷引起的漏洞。由于服務器端在接收到請求數據進行操作時沒有判斷數據的所屬人而導致的越權數據訪問漏洞。如服務器端從客戶端提交的request參數(用戶能夠控制的數據)中獲取用戶id,惡意攻擊者通過變換請求ID的值,查看或修改不屬于本人的數據。

隨著互聯網和Web技術的廣泛使用,Web應用安全所面臨的挑戰日益嚴峻,Web系統時時刻刻都在遭受各種攻擊的威脅。因此,像BI這種典型的Web應用,需要制定一個完整的Web攻擊防御解決方案。在這里以Smartbi安全性為例,向大家介紹怎么做到防患于未然。
首先,Smartbi通過軟件自帶的安全補丁工具包定期進行補丁文件的更新,并且支持熱修復;其次,Smartbi從Web端、源碼、組件等方面對產品進行安全問題自查,同時也通過與“補天眾測平臺”和“廣東賽評檢測中心”等第三方機構進行合作,定期對產品進行安全掃描,并積極配合解決發現的漏洞。最后,通過官方的技術支持渠道,及時響應用戶對安全問題的咨詢和求助。
由此可見,Smartbi正是通過建立全方位的安全漏洞防御機制來確保用戶信息的安全。但是,Web攻擊防御是一個長期持續的工作,隨著Web技術的發展和更新,Web攻擊手段也不斷發展,針對這些最新的安全威脅,需要及時調整Web安全防御策略,使Web應用在一個安全的環境中為企業服務。