通用处理程序中的"潜在危险Request.Form"异常

rou*_*tic 3 asp.net validation ashx dangerous-request generic-handler

我以前见过这个错误,但似乎无法绕过它.在这种情况下,我有一个ASHX页面吐出一个简单的HTML表单,其中包含可以发布XML的文本框.当我尝试阅读表单时,我收到"有潜在危险的Request.Form值......".

由于它是通用处理程序,因此"ValidateRequest"属性不可用.但是我已经在web.config中定义了这个:

<location path="xml/MyGenericHandler.ashx">
    <system.web>
      <pages validateRequest="false" />
    </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

这个片段早于从.NET 3.5迁移到4.0,所以我猜这是破坏的起源.

知道如何解决ASHX页面的这个错误吗?

Wya*_*ett 6

剪辑你的3.5-4.0更改是为ASP.NET 4.0加强了运行时安全功能.快速解决方法是应用以下属性:

<httpRuntime requestValidationMode="2.0" />
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会打开所有页面,最多可以进行2.0请求验证,所以如果你有一个相对较小的攻击面,我只会这样做.