如何在使用AntiXssOutputEncoder时忽略元标记?

时间:2010-08-25 12:29:37

标签: asp.net-mvc

我正在使用类似于Phil Hacck提出的一个Anti XSS输出编码器here

不幸的是,它在我的Site.master上猖獗,并且如此污染了元标记:

<meta name="robots" content="all,&#32;follow" />

在Site.master中,它的编写简单如下:

<meta name="robots" content="all, follow" /> 

在正常情况下哪个是正确的输出,但我更喜欢能够跳过site.master中的元标记。

有没有办法在运行自己的HttpEncoder时执行此操作?

1 个答案:

答案 0 :(得分:0)

我认为您不会获得该信息,但如果您没有这样的元标记,则可以尝试将允许值列入白名单。

简化版本为:

protected override void HtmlAttributeEncode(string value, TextWriter output)
{
    if (value != "all,&#32;follow")
    {
        output.Write(AntiXss.HtmlAttributeEncode(value));
    } 
    else
    {
        output.Write(value);
    }
}

不理想,但就我所知,HttpEncoder并没有给你上下文。