Asp.net mvc 从客户端ASP.NET MVC检测到一个潜在危险的请求。表单值
在我的ASP.NET MVC应用程序中,我从所见即所得(WYSIWYG)获取HTML输入,因此我不想验证内容,因此我在该应用程序中遇到此错误Asp.net mvc 从客户端ASP.NET MVC检测到一个潜在危险的请求。表单值,asp.net-mvc,dangerous-request,Asp.net Mvc,Dangerous Request,在我的ASP.NET MVC应用程序中,我从所见即所得(WYSIWYG)获取HTML输入,因此我不想验证内容,因此我在该应用程序中遇到此错误 我尝试了我找到的解决方案,但它似乎对我的MVC应用程序没有任何影响。我也尝试过在web.config中这样做,但还是没有乐趣这是ASP.NET MVC中的错误还是什么?只需将此属性:[ValidateInput(false)]放置在处理表单post的控制器上的操作方法上。在MVC中,您将使用(false)属性 然后,您需要清理输入,例如,使用类似(内置于A
我尝试了我找到的解决方案,但它似乎对我的MVC应用程序没有任何影响。我也尝试过在web.config中这样做,但还是没有乐趣
这是ASP.NET MVC中的错误还是什么?只需将此属性:[ValidateInput(false)]放置在处理表单post的控制器上的操作方法上。在MVC中,您将使用(false)属性
然后,您需要清理输入,例如,使用类似(内置于ASP.NET 4.5+;早期使用NuGet软件包)的内容。在MVC 3和更高版本的web配置中使用
,您还可以使用[allowtml]
属性。此属性允许您只跳过模型上一个属性的验证,从而更精细
在控制器操作方法中(带来此操作的方法)添加[ValidateInput(false)]
范例
[HttpPost]
[ValidateInput(false)]
public ActionResult Insert(FormCollection formCollection, Models.Page page)
{
//your code
return View();
}
在Kelix中,您提到的帖子建议使用[pages requestValidation=“false”]web.config参数或视图的[@Page ValidateRequest=“false”]属性。这些选项中的任何一个都可以正常工作。如果可以,请参阅:您必须在web.config[allowtml]中的model属性中添加选项,这样做会更好。禁用验证不是安全的方法,尤其是当您的应用程序面向公共Internet时。考虑使用更细粒度<代码> [允许HTML] < /代码>attibute@jazzcat我同意,但是[allowtml]
在2009年不存在对我有效,这似乎比“[ValidateInput(false)]”更安全,谢谢你必须应用到模型属性以及相应的视图模型属性,然后它才有效。在我的模型中使用此属性[allowtml],消除了错误。它还会捕获跨站点脚本吗?不会,它不会捕获跨站点脚本。选择此属性意味着您将在输出内容之前自己对内容进行安全编码,或者您正在为某种CMS开发一个HTML编辑器,您实际上希望允许用户输入HTML/脚本以运行它们。