
概述
微软反跨站脚本库V4.2(AntiXSS V4.2)是一种编码库,旨在帮助开发人员保护他们的ASP.NET基于Web的应用程序免受XSS攻击。它不同于编码库,因为它使用的白名单技术-有时也被称为作为夹杂物的原则-提供保护,防止跨站脚本攻击。这种方法首先定义一个有效的或允许的字符集,编码集(无效字符或潜在攻击)以外。白名单的方法提供了一些优势,其他的编码方案, 此版本解决HTML消毒剂中的一个漏洞,MS12-007,并增加了全面支持。NET 4.0 NET 2.0的支持,以及恢复。安全在web领域是一个永远都不会过时的话题,今天我们使用微软反跨站脚本库防范XSS攻击 :
- 安装
- 使用:msi安装程序,安装之后,安装目录下有以下文件
AntiXSS.chm 包括类库的操作手册参数说明
HtmlSanitizationLibrary.dll 包含Sanitizer类(输入白名单)
AntiXSSLibrary.dll 包含Antixss,Encoder类(输出转义)
使用时在工程内添加引用HtmlSanitizationLibrary.dll 和AntiXSSLibrary.dll
导入命名空间using Microsoft.Security.Application;
请查看它的接口,以帮助您确定在编码时使用适当的调用方法,过滤可能包含不受信任的输出。
编码方法 |
使用场景 |
示例 |
---|---|---|
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> |