为什么RequestValidation不能在AJAX请求上验证?

时间:2013-11-27 04:41:51

标签: c# .net asp.net-mvc security

我正在使用MVC 4并对请求启用验证:

<system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime requestValidationMode="2.0" />
</system.web>

为什么验证仅适用于FORM请求而非AJAX请求?如果表单请求包含一个包含HTML文本的字段,例如'<html'>,则验证将引发错误“从客户端检测到一个潜在危险的Request.Form值...”。但是,对于包含HTML文本的AJAX请求,为什么.NET验证不会引发错误?

最后,我有一个问题:对AJAX请求的验证是没用的吗?

感谢。

1 个答案:

答案 0 :(得分:1)

默认情况下,Ajax请求确实不受RequestValidation的影响。虽然您可以覆盖此行为并实现自己的验证:Security Issue in MVC AJAX

这适用于MVC3,但我不知道它是否适用于MVC4或5.但你绝对可以检查出来。