Fire my passion

Anything with my most passion……
数据加载中……
防御XSS跨站脚本攻击

跨站点脚本攻击是使用web页面验证的弱点来插入客户端脚本代码的一种攻击方式
这种弱点主要是由于:

1、没有输入验证
2、没有对输出进行编码
3、完全信任从共享数据库中取得的数据

对策主要有两种
1、对输入进行限制
2、对输出进行编码

对输入进行限制可以采取
1、使用数据验证控件,如RegularExpressionValidator、RangeValidator
2、使用System.Text.RegularExpressions.Regex类,对Session、Cookie等信息进行约束

对输出进行编码可以采取
1、HttpUtility.HtmlEncode对将要输出的数据进行编码

检查XSS的步骤
1、ASP.NET 的request validation是否允许
2、检查ASP.NET代码产生的HTML输出
3、看看HTML输出是否需要包括用户输入数据
4、检查潜在危险的HTML标签和属性
5、评估一下对策

如果需要进行更加严格的检查,可以使用Microsoft Anti-Cross Site Scripting Library来对输出进行编码
其中主要方法有:
1、HtmlEncode
2、HtmlAttributeEncode
3、JavaScriptEncode
4、UrlEncode
5、VisualbasicScriptEncode
6、XmlEncode
7、XmlAttributeEncode

使用这个库的步骤
1、检查ASP.NET代码产生的输出
2、看看是否包含非信任的输入数据。其中包括Application、Cookies、Databases、Form fields、Query string、Session
3、看看使用上述哪种输出方法
4、对输出进行编码

需要注意的地方:
1、只能对数据进行一次编码,否则输出的内容将不正确
2、在脚本块中进行编码不需要在编码后的字串外加入引号

Tag标签: asp.net,script

posted on 2008-01-22 14:32 everx 阅读(113) 评论(1)  编辑 收藏 网摘 所属分类: ASP.NET


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-01-25 15:00 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:


相关搜索:
asp.net script

相关链接: