XSS防范
2009-07-17 15:49
267 查看
一 简介
Asp.net 1.1后默认提供了防范 XSS(跨站脚本攻击) 的能力, 如果发现有风险的html标签 系统会抛出一个
HttpRequestValidationExceptioin 异常,
二 使用
1.可以设置 validateRequest=false 来禁用这个特性,
2.可用如下方法捕获该错误并对其进行处理: [请切记关闭后需自行编辑代码处理危险字符]
3.自行编写代码处理危险字符可以采用 "默认禁止,显式允许"的策略。即先将输入用HtmlEncode()来编码,然后再用Replace()替换出安全标签
4.根据微软提供的建议,我们要慎重允许下列HTML标签,因为这些HTML标签都是有可能导致跨站脚本攻击的。
可能这里最让人不能理解的是<img>。但是,看过下列代码后,就应该明白其危险性了。
通过<img>标签是有可能导致Javascript执行的,这样攻击者就可以做他想伪装的任何事情。
关于<style>也是一样:
Asp.net 1.1后默认提供了防范 XSS(跨站脚本攻击) 的能力, 如果发现有风险的html标签 系统会抛出一个
HttpRequestValidationExceptioin 异常,
二 使用
1.可以设置 validateRequest=false 来禁用这个特性,
2.可用如下方法捕获该错误并对其进行处理: [请切记关闭后需自行编辑代码处理危险字符]
以下是引用片段: protected void Page_Error(object sender, EventArgs e) { Exception ex = Server.GetLastError(); if (ex is HttpRequestValidationException) { Response.Write("请您输入合法字符串。"); Server.ClearError(); // 如果不ClearError()这个异常会继续传到Application_Error()。 } } |
4.根据微软提供的建议,我们要慎重允许下列HTML标签,因为这些HTML标签都是有可能导致跨站脚本攻击的。
以下是引用片段: <applet> <body> <embed> <frame> <script> <frameset> <html> <iframe> <img> <style> <layer> <link> <ilayer> <meta> <object> |
以下是引用片段: <img src="javascript:alert(''hello'');"> <img src="java script:alert(''hello'');"> <img src="java script:alert(''hello'');"> |
关于<style>也是一样:
以下是引用片段: <style TYPE="text/javascript">... alert(''hello''); </style> |
相关文章推荐
- 跨站脚本攻击(XSS)的原理、防范和处理方法
- xss注入和防范的方法
- 浅谈跨网站脚本攻击(XSS)的手段与防范(简析新浪微博XSS攻击事件)
- Web站点如何防范XSS、CSRF、SQL注入攻击
- web安全防范之XSS漏洞攻击
- 防范XSS跨站2
- XSS研究2-来自内部的XSS攻击的防范
- jsonp接口的xss防范
- 网站安全之XSS漏洞攻击以及防范措施
- web安全之xss 入侵 与 防范
- 网站安全之XSS漏洞攻击以及防范措施
- java防范跨站脚本攻击(XSS)
- ASP.Net防范XSS漏洞攻击的利器HtmlSanitizer
- 网站安全之XSS漏洞攻击以及防范措施
- XSS研究4-来自外部的XSS攻击的防范
- Javascript 输入框 xss注入 以及防范
- 对于xss和sql注入的防范(美团网站xss例子)
- 网站安全之XSS漏洞攻击以及防范措施
- XSS防范
- 测试如何防范xss