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等标签中的特殊危险字符进行编码,以达到防范攻击的目的
相关文章
相关标签/搜索