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

标签 asp.net-mvc-3 xss asp.net-4.0 antixsslibrary

我正在使用 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/

相关文章:

compression - IIS 7.5 ASP.NET-4 Gzip压缩

c#-4.0 - 自定义验证器触发但不阻止回发

javascript - 如何从 Controller 中多次调用一个方法? Ajax

asp.net-mvc - 我如何从 Orchard alternate 中渲染区域或小部件?

asp.net - 在父 View 模型的特定条件下,关闭本身是 View 模型的属性的数据注释验证

jquery - 在 ASP.NET MVC 3 View 中显示 JavaScript (jQuery) 错误的推荐方法是什么?

sql - 有人可以向我解释一下这种 SQL 注入(inject)攻击吗?

javascript - 在现场使用 Wymeditor 安全吗?自动脚本可以禁用 javascript 吗?

wcf - 两个端点(soap、json)和一个服务方法

java - XSS 和 Applet/Param HTML 关键字