【发布时间】:2012-10-01 06:30:40
【问题描述】:
除了设置ValidateRequest="false"之外,有没有办法防止“从客户端检测到潜在危险的Request.Form值”错误?
更新:我删除了“页面上”部分。我不想在页面或 web.config 中使用 ValidateRequest="false"。
【问题讨论】:
标签: asp.net http-post validate-request
除了设置ValidateRequest="false"之外,有没有办法防止“从客户端检测到潜在危险的Request.Form值”错误?
更新:我删除了“页面上”部分。我不想在页面或 web.config 中使用 ValidateRequest="false"。
【问题讨论】:
标签: asp.net http-post validate-request
查看新的ASP.NET 4.5 request validation features。
如果你设置了
<httpRuntime requestValidationMode="4.5" ... />
在您的 web.config 中,值只会在您访问它们时得到验证。这称为延迟验证。
您还可以通过
获取未经验证的值var s = context.Request.Unvalidated.Form["forum_post"];
【讨论】:
1 您还可以在输入中添加 javascript 验证
2 您可以添加自定义验证器
【讨论】:
是的,您可以在 web.config 中全局执行此操作。
如果您运行的是 .net 4.0,您可以将其添加到您的 web.config 中
<httpRuntime requestValidationMode="2.0"/>
或者你可以添加这个
<pages validateRequest="false" />
【讨论】:
您可以通过编辑 web.config 文件为整个应用程序禁用它
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
这将有助于了解您是否只想抑制错误,或者是否想阻止它从一开始就被引发。如果您想阻止它,请在提交表单之前清理您的输入(使用 javascript 或验证器)。
【讨论】: