如何在asp.net web.config中编写httpRuntime for 3.5 framework

时间:2012-01-30 13:27:43

标签: c# asp.net xss antixsslibrary

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

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

并且效果很好,但如果我将版本更改为3.5,我会得到这个erorr

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

2 个答案:

答案 0 :(得分: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。

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

答案 1 :(得分:0)

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

<httpRuntime encoderType="Microsoft.Security.Application.AntiXssEncoder, AntiXssLibrary" />