Web站点防注入注意事项(转)

Web站点防注入注意事项

1. 防止页面注入

a) 限制所有页面输入框的输入格式、输入类型、输入长度以及输入字符。例如:禁止输入“‘”, ”;”等特殊字符,并限制输入数字的长度,对于输出的内容进行HtmlEncode格式化输出;

b) 页面程序需要过滤所有post或get请求中的参数信息中非法字符,对所有的QueryString信息过滤,对于每一个QueryString[“name”]都要加上AntiXss.HtmlEncode(queryString[“name”]),对QueryString进行编码。

注:AntiXSSLibrary.dll,是一个很好的过滤页面非法字符工具,它会将一些危险字符转换成安全的HTML编码内容。下载地址:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=f4cd231b-7e06-445b-bec7-343e5884e651

用法:使用AntiXss.HtmlEncode(“要进行格式化输出输入的内容”) 方法格式化输入和输出的HTML内容;

c) 做好网站的customError跳转页面。只要网站出现错误,则跳到404错误页面。可以避免别人根据你的错误提示,得到一些站点信息;

d) 服务器管理员应对IIS站点设置相应执行权限,特别是对于一些用户可以上传的资源文件夹,更应该合理分配执行修改权限,并避免使用everyone帐号权限;

e) 对于URL中出现一些特殊、危险的字符串,讲行提示并跳转到404页面。(如:Delete,update等这些特殊字符) ;

f) 加密web站点webconfig里的连接数据库字符串,防止被非法用户获取webconfig内容,从而攻陷数据库。

2. 防止SQL脚本注入

a) 在程序编码过程中,应杜绝SQL拼接的方式去写SQL语句,而用参数化的方式或者存储过程;

b) 权限限制,对数据库,存储过程等等进行权限限制。例如:对于一些只是查询,而不做其它操作的数据表,只给其查询的权限,这样更能杜绝一些通过非法SQL修改数据库表数据的操作。通过建两个数据库帐号进行读写分离的方式也是有效方法;

c) 避免使用SA帐号,来连接数据库;

d) 服务器应该过一段时间,就打一次补丁,及时修复系统和安全漏洞。

3. 防止cookie伪造

在网站中,应该尽量避免写入明文的用户名和密码。建议对Cookie进行加密或着二次加密码,防止恶意伪造cookie对网站进行跨站点脚本攻击,例如:.net特有的form验证,可以将用户登录票据进行加密然后放入客户端cookie中。

posted @ 2014-03-26 14:10  山峰旺旺  阅读(256)  评论(0编辑  收藏  举报