关于在线文本编辑器防XSS注入攻击问题
2018-02-07 15:09
453 查看
跨站脚本攻击,又称XSS代码攻击,也是一种常见的脚本注入攻击。例如在下面的界面上,很多输入框是可以随意输入内容的,特别是一些文本编辑框里面,可以输入例如<script>alert('这是一个页面弹出警告');</script>这样的内容,如果在一些首页出现很多这样内容,而又不经过处理,那么页面就不断的弹框,更有甚者,在里面执行一个无限循环的脚本函数,直到页面耗尽资源为止,类似这样的攻击都是很常见的。
为了避免上述的XSS代码攻击,解决办法是可以使用HttpUitility的HtmlEncode或者最好使用微软发布的AntiXSSLibrary进行处理,这个更安全。微软反跨站脚本库(AntiXSSLibrary)是一种编码库,旨在帮助保护开发人员保护他们的基于Web的应用不被XSS攻击。
然而,特殊情况如通过文本编辑器提交文章内容时,由于排版和格式化的原因,需要展示出html效果,以上方法行不通,此时需要既能展示出html效果,又要处理掉危险的xss代码。微软提供的HtmlSanitizationLibrary类库可以很好解决此问题。
为了避免上述的XSS代码攻击,解决办法是可以使用HttpUitility的HtmlEncode或者最好使用微软发布的AntiXSSLibrary进行处理,这个更安全。微软反跨站脚本库(AntiXSSLibrary)是一种编码库,旨在帮助保护开发人员保护他们的基于Web的应用不被XSS攻击。
编码方法 | 使用场景 | 示例 |
---|---|---|
HtmlEncode(String) | 不受信任的HTML代码。 | <a href=”http://www.cnblogs.com”>Click Here [不受信任的输入]</a> |
HtmlAttributeEncode(String) | 不受信任的HTML属性 | <hr noshade size=[不受信任的输入]> |
JavaScriptEncode(String) | 不受信任的输入在JavaScript中使用 | <script type=”text/javascript”> … [Untrusted input] … </script> |
UrlEncode(String) | 不受信任的URL | <a href=”http://cnblogs.com/results.aspx?q=[Untrusted input]”>Cnblogs.com</a> |
VisualBasicScriptEncode(String) | 不受信任的输入在VBScript中使用 | <script type=”text/vbscript” language=”vbscript”> … [Untrusted input] … </script> |
XmlEncode(String) | 不受信任的输入用于XML输出 | <xml_tag>[Untrusted input]</xml_tag> |
XmlAttributeEncode(String) | 不 受信任的输入用作XML属性 | <xml_tag attribute=[Untrusted input]>Some Text</xml_tag> |
string safecode=Sanitizer.GetSafeHtmlFragment(txtName.Text); 此方法能够自动过滤掉特殊的代码,又不影响html效果显示。
相关文章推荐
- 关于PHP xss 和 SQL 注入的问题
- 总结了关于PHP xss 和 SQL 注入的问题(转)
- 关于web XSS注入问题
- 关于spring boot自动注入出现Consider defining a bean of type 'xxx' in your configuration问题解决方案
- 关于spring容器依赖注入接口的小问题
- 关于ubuntu10.04触摸板不能禁用和gedit文本编辑器中文乱码问题的一个解决方案
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
- 关于项目中NServiceBus和MEF注入(WCF服务代理失效)的两个问题
- 关于 在线窗口翻译 在浏览器中使用的问题
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
- 关于SpringMVC中使用ContentCachingRequestWrapper无法注入到RequestBody问题
- 关于静态方法利用@Autowired注入的service类问题
- struts2与spring集成时,关于Action类中成员bean自动注入的问题
- 关于spring注解试注入的配置问题
- Java防止跨站脚本(XSS)注入攻击
- 关于cnodejs中的xss注入防范
- 关于Spring MVC中jdbcTemplate注入问题
- Java防止跨站脚本(XSS)注入攻击
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
- 关于DAO实现类继承JdbcDaoSupport类后,使用注解无法注入DataSource的问题