Beginning Asp.Net Security 讀書筆記-----XSS

 幾個月前經過Veracode對代碼進行動態和靜態安全掃描,掃出了數以千計的安全bug,基本上都是top 10的,安全漏洞. 其中CWE80,CWE601數量最多.具體CWE的定義可參考http://cwe.mitre.org/ 。javascript

 正好手上有Beginning Asp.Net Security這本書,因此就看了看。全部的安全漏洞都源於非法用戶的輸入,因此任何應用程序或業務系統都須要在必定範圍內設置安全邊界。html

 

 在安全邊界之外,接受任何用戶輸入都應該認爲是不安全的,而黑客也是經過用戶變量的進行代入達到攻擊的目的,因此在接受用戶輸入的時候須要加入校驗。在Asp.Net中對於Request默認是有驗證的,在發送任何發送Request的http runtime時候都會驗證請求中的form內容,若是request中有危險字符java

咱們能夠獲得如圖黃頁錯誤。咱們能夠經過下面設置取消在http runtime的驗證web

•<%@ Page validateRequest=「false」 %>
•<system.web> <pages validateRequest="false" /> </system.web>
在mvc裏面能夠 用下面的配置:
•<httpRuntime requestValidationMode="2.0" />
•[AllowHtml]
•[ValidateInput(false)]
 
取消了http runtime 的request 驗證,那麼後臺程序就能夠接收到用戶的全部輸入了,一旦用戶的輸入包括了javascript,sql就有可能被注入攻擊,因此須要對用戶的輸入進行處理了(encode).
 
Anti-Cross Site Scripting Library
Anti-Cross Site Scripting Library是MS的開源項目,它針對CSS,Javascript,html,url等標籤中的特殊危險字符進行編碼,以達到防範攻擊的目的
相關文章
相關標籤/搜索