gpt4 book ai didi

asp.net-mvc-3 - AntiXss 库运行不正常

转载 作者:行者123 更新时间:2023-12-01 10:10:38 26 4
gpt4 key购买 nike

我正在使用 AntiXssLibrary 4.0 但它没有转义\x3c。我的错误是什么?

我已根据此处 http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp-net.aspx 将 AntiXss 配置为默认 HttpEncoder并在web.config中设置httpRuntimeencoderType

我还创建了 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 分钟。

为了确认,我也在一个 Action 中设置了这个:

    public ActionResult Index(string k)
{
ViewBag.k = k;
ViewBag.j = Microsoft.Security.Application.Encoder.HtmlEncode(k);
return View();
}

然后在 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 作为编码器类型时才会发生。当我对此发表评论并重建时。 MVC 转义的单引号 '。似乎 AntiXss 被禁用了!我错过了什么吗?我希望它能正常工作,因为我希望\x3c 也像视频一样转义。

<!--<httpRuntime encoderType="AntiXSSEncoder, MVCWeb"/>-->

最佳答案

你是对的,因为 4.0 .NET 在 HTMLEncode 中编码了撇号,而 AntiXSS 没有,因为严格来说,HTML 字符串不需要它,只需要属性字符串。

现在,一旦您将 AntiXSS 换成编码器,该假设就不再适用,而人们不管愿意与否,都会在任何地方应用 Html 编码。

所以当我推送下一个版本的 AntiXSS 时,它会一直对撇号进行编码。

关于asp.net-mvc-3 - AntiXss 库运行不正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5497795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com