特殊字符导致“潜在危险的Request.Form值”

时间:2012-10-27 17:21:21

标签: asp.net

我正在构建一个针对特定需求的脚注编辑器,我需要一个显示特殊字符的下拉列表,例如匕首(&#134)。不确定它是否重要,但是下拉列表是一个ajax模式弹出窗体。每当我尝试显示弹出窗体时,我都会收到错误“从客户端检测到一个潜在危险的Request.Form值(ctl00 $ MainContent $ ucFootNoteList $ DropDownList1 =”*,&#134“)。

我尝试添加     < httpRuntime requestValidationMode =“2.0”/> 到Web.config文件。

如果没有出现此错误,如何在此方案中显示特殊字符?

3 个答案:

答案 0 :(得分:1)

您可以在相应WebForm的页眉上设置validateRequest属性,以禁用请求验证并允许发布HTML字符:

<%@ Page validateRequest="false" %>

这也可以在web.config中的所有WebForms全局完成:

<pages validateRequest="false" />

这是MSDN上的an article,您可以在其中阅读有关ASP.NET中请求验证的更多信息。

答案 1 :(得分:1)

您可以禁用ValidateRequest属性,但[非常重要!]请使用像AntiXss这样的库来清理您的输入,如下所示:

http://wpl.codeplex.com/

否则您将容易受到输入攻击(注入,xss等)

实际上你的请求“有潜在危险”的原因是因为运行时认为有些人试图注入一些HTML,这就是为什么你不能插入&lt; bla&gt;

答案 2 :(得分:-1)

禁用ASP.NET请求验证功能。为此,在Web页面的.aspx文件中,设置此处显示的Page ValidateRequest设置。

<%@ Page ValidateRequest="false"%>

或者,在Web应用程序的Web.config文件中,将该部分的validateRequest属性设置为false。

<configuration>
    <system.web>
        <pages validateRequest="false" />
        </system.web>
    </configuration>

来源:http://msdn.microsoft.com/en-us/library/ee517280.aspx