A1 - Cross Site Scripting (XSS)
1.在页面上对文本输入框,下拉列表的值,中输入的一些敏感字符进行转换(如:< > “ ‘等)。
2.在Global.asax中Application_BeginRequest事件中进一步对对一些敏感字符进行转换和过滤
A2 - Injection Flaws
1. 参见A1.
2. 不要直接使用拼接SQL. 用参数式样的SQL或者存储过程,然后对参数设值。
A3 - Malicious File Execution
1. 禁止上传exe,dll,js,vbs之类的可执行文件
2. 设置防火墙和杀毒软件。
3. IIS执行Asp.net用户,降低其可以执行文件的权限。
A4 - Insecure Direct Object Reference
在访问数据的时候都在SQL的参数中加上访问人工号,并根据工号算出期权限,限制其访问的数据。
A5 - Cross Site Request Forgery (CSRF)
1. 生成随机名称的Hidden和随机的Value,然后在客户端传回的时候进行对称加密验证。或者用.net特有的ViewState,用来做类似的对称加密验证。
2. 在Post前用javascript对敏感数据(比如密码)进行加密,再提交。
3. 减少Get传递信息。
A6 - Information Leakage and Improper Error Handling
1. 在用户页面只出简要错误提示,避免具体报错信息,只在server日志中记录。
A7 - Broken Authentication and Session Management
1. 用SSL链接
2. 在Seesion中加入IP地址,每次进行验证。
A8 - Insecure Cryptographic Storage
1. 使用更加安全的加密算法AES, RSA和SHA-256。
2. 程序里不用明码写密钥。
A9 - Insecure Communications
在IIS中设置启用SSL链接,以提高安全性
A10 - Failure to Restrict URL Access
.net自带的把*.cs,*.config等一些重要文件不能下载。在iis中设置把目录中一些重要的文件(比如头文件)设置成不能下载。