web應用基於c/s(client/server)服務模型搭建:客戶端傳送請求,服務端負責響應。一般客戶端就是瀏覽器,但可以向伺服器傳送請求的軟體則遠遠不限於瀏覽器。web伺服器通常以公開的網域名稱接收請求並提供服務,需要應對任何**的請求。
保障web應用的安全需要前後端配合,但主要還是服務端。服務端需要全面分析專案所實現的功能,對任何可能暴露漏洞、引發攻擊的介面,都要提前擬定防禦措施,由前後端共同配合實施,落實到位。
本文總結了web應用最常見的6種漏洞,並對這些漏洞的危害、成因以及解決方案進行了簡要分析。
漏洞危害:
xss(cross site scripting,跨站點指令碼),是由於沒有恰當過濾使用者輸入,導致攻擊者把惡意指令碼上傳到伺服器,進而注入到網頁中。
要堵住這個漏洞,關鍵不在於輸入過濾,而在於輸出過濾。
解決方案:使用者可以通過表單向伺服器提交任意文字,但在伺服器要渲染使用者輸入內容時,必須進行反xss過濾。
漏洞危害:
之所以會發生sql注入,主要因為**中存在拼接sql語句的情況。比如:
`* select field from tablename where ( name = " + name + " )`這個查詢使用引數name拼接了一條select語句。
要堵住這個漏洞,關鍵是保證引數name的值必須合法有效。
解決方案:在實際拼接sql語句之前,要對name進行合法性驗證,通過驗證後再去拼接。
漏洞危害:
許可權繞過,顯然是因為沒有對使用者身份及許可權進行驗證或者驗證不完善造成的。
要堵住這個漏洞,核心是確保使用者有權傳送相應請求。
解決方案:伺服器給使用者瀏覽器種上cookie,同時根據cookie生成唯一的token,與cookie值一同儲存在伺服器上(或資料庫裡)。對於敏感的操作(比如發表、修改文章),服務端要驗證cookie是否與token一致。
漏洞危害:
csrf(cross-site request forgery,跨站點請求偽造),就是利用受站點信任的使用者傳送惡意請求。
要堵住這個漏洞,核心也是確保使用者有許可權傳送相應請求。
解決方案:在重要請求中的每乙個url和所有的表單中新增token,並在伺服器端驗證該token。
漏洞危害:
ssrf(server side request forge,服務端請求偽造),利用web伺服器可以訪問內網竊取內網資訊或攻擊內網伺服器。
漏洞危害:
郵件/簡訊轟炸,主要由於郵件訂閱或簡訊驗證介面沒有做好防護。
要堵住這個漏洞,可以限制傳送頻率和使用驗證碼驗證。
解決方案:在傳送郵件或簡訊的表單中操作增加輸入驗證碼功能,包括伺服器端驗證碼或簡訊驗證碼。另外,簡訊驗證碼要限制傳送時間間隔,比如1分鐘以後允許重發。
web應用,歸根結底就是請求和響應。理論上,只要把住接收資料和傳送資料這兩道關,就可以杜絕安全漏洞。實踐中,可以將前端傳送請求的api統一管理,所有請求都走這個統一的介面傳送請求。這樣便於對請求進行驗證和防護。服務端也類似,但相對複雜一些。一些針對cookie和token的操作可以統一完成。
Web伺服器常見8種安全漏洞
物理路徑洩露 物理路徑洩露一般是由於web伺服器處理使用者請求出錯導致的,如通過提交乙個超長的請求,或者是某個精心構造的特殊請求,或是請求乙個web伺服器上不存在的檔案。這些請求都有乙個共同特點,那就是被請求的檔案肯定屬於cgi指令碼,而不是靜態html頁 面。目錄遍歷 目錄遍歷對於web伺服器來說...
struts2安全漏洞及解決辦法
7月17日,世界知名開源軟體struts 2爆出了2個高危漏洞,這些漏洞可使黑客取得 伺服器的 最高許可權 從而使企業伺服器變成黑客手中的 肉雞 詳細漏洞資訊 關於此漏洞,最好的解決方法當然是將struts2的jar包更新到最新版本。不過對於不同struts2版本,公升級會引起一些包衝突。公升級步驟...
Bash軟體安全漏洞檢測及解決方案
目前官方已經提供了公升級包請執行 yum update y bash 進行公升級處理!bash是一款在很多unix電腦中用於控制命令提示符的軟體,黑客可以借助bash中的漏洞完全控制目標系統。美國國土安全部下屬的美國電腦緊急響應團隊 以下簡稱 us cert 發出警告稱,這一漏洞可能影響基於unix...