我正在使用 AntiXssLibrary 4.0,但它没有转义 \x3c。我的错误是什么?
HttpEncoder
我已根据此处http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp-net.aspx将 AntiXss 配置为默认值并设置在. encoderType
_httpRuntime
web.config
我也创建AntiXSSEncoder
派生自HttpEncoder
但不推荐使用
output.Write(AntiXss.HtmlEncode(value));
我用它来覆盖HtmlEncode
方法:
output.Write(Encoder.HtmlEncode(value));
目前,如果我浏览这个:
http://localhost:28453/?k=sss\x3cscript\x3ealert%28\x27haaha\x27%29;\x3c/script\x3e
警报“haaha”显示 AntiXss 库不工作。我只想制作这样的节目http://channel9.msdn.com/Events/MIX/MIX10/FT05见第 13 分钟。
为了确认我还在一个动作中设置了这个:
public ActionResult Index(string k)
{
ViewBag.k = k;
ViewBag.j = Microsoft.Security.Application.Encoder.HtmlEncode(k);
return View();
}
然后在视图中我放了这个:
<script type="text/javascript">
$(document).ready(function () {
var a = '@ViewBag.k';
var b = '@ViewBag.j';
$('.resultName:first').html(b);
});
</script>
从浏览器看,a 和 b 的值相同,说明 AntiXss 不能正常工作!
<script type="text/javascript">
$(document).ready(function () {
var a = 'sss\x3cscript\x3ealert(\x27haaha\x27);\x3c/script\x3e';
var b = 'sss\x3cscript\x3ealert(\x27haaha\x27);\x3c/script\x3e';
$('.resultName:first').html(b);
});
</script>
更新AntiXssEncoder
:仅在我使用as 编码器类型时才发生。当我对此发表评论并重建时。单引号 ' 被 MVC 转义。似乎已禁用 AntiXss!我错过了什么吗?我想要这个工作,因为我想像 \x3c 也像视频一样逃脱。
<!--<httpRuntime encoderType="AntiXSSEncoder, MVCWeb"/>-->