0

此属性是 .NET Framework 4.0 版中的新属性。我在 .Net Framework 4.0 版的解决方案中有 web.config 文件

<system.web>
    <httpRuntime  encoderType="Web.AntiXss.AntiXssEncoder, Web.AntiXss"/>

这很好用,但是如果我将版本更改为 3.5,我会收到此错误

Unrecognized attribute 'encoderType'. Note that attribute names are case-sensitive.

encoderType 属性仅在 4.0 版本中,我如何将其重写为 3.5 ?

编辑
或者我如何在 .net 3.5 项目中使用 microsoft AntiXss 库?
我将这篇文章用于 .net 4.0 http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp-net.aspx

4

2 回答 2

4

这仅适用于 .Net4

Gets or sets the name of a custom type that 
        can be used to handle HTML and URL encoding.

你必须明白,这是一个从Net4核心调用的函数的内部变化,这个函数在net 3.5及更低版本中是不存在的,所以不是他们怎么写的,他们只是不存在。

参考:http: //msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.encodertype.aspx

更多信息

此参数实际上是替换 Net 3.5 上也存在的类System.Web.Util.HttpEncoder的一个选项,但没有核心替换它的选项。

System.Web.Util.HttpEncoder一切准备就绪,非常强大,Net.4 实际上插入了更多功能。通过将其替换为AntiXccEncoder也许您可以获得更多控制权,但如果没有,则不是世界末日(由 HG Wells 提供)。

我还检查了它是否可以用一些代码来替换这个调用,在我看来这是不可能的,因为它在太多的点上被调用,例如它对所有控制属性的调用!、url 调用、html 渲染等等Net4 内部的原生,不值得做这么多代码来将 HttpEncoder 更改为 AntiXccEncoder。

也许您需要专注于您可能害怕受到攻击的页面代码,并确保正确处理输入数据。

于 2012-01-30T13:31:28.917 回答
0

如果您使用的 .NET 版本早于 4.5,则需要下载并包含该库作为对项目的引用,然后使用较早的库名称进行 encodeType 设置,如下所示。

<httpRuntime encoderType="Microsoft.Security.Application.AntiXssEncoder, AntiXssLibrary" />
于 2018-05-04T03:21:29.087 回答