web十大安全隐患及对策

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中设置把目录中一些重要的文件(比如头文件)设置成不能下载。

参考http://www.owasp.org/index.php/Top_10_2007

原文地址:https://www.cnblogs.com/peteryu007/p/1396686.html