从客户端中检测到有潜在危险的Request.Form 值
今天往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误:
从客户端(Content="<EM ><STRONG ><U >这是测试这...")中检测到有潜在危险的Request.Form 值。
说
明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示存在危及应用程序安全的尝试,如跨站点脚本攻击。若要允许页面重
写应用程序请求验证设置,请将 httpRuntime 配置节中的 requestValidationMode 特性设置为
requestValidationMode="2.0"。示例: <
httpRuntime requestValidationMode="2.0" / >。设置此值后,可通过在 Page 指令或 <
pages > 配置节中设置 validateRequest="false" 禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所
有输入。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkId=153133。
原以为就像普通的Asp.net页面一样,在头部的Page中加入ValidateRequest="false"就行了,谁知问题还是存在。弄了一个上午,问题终于解决,将解决方法汇总如下:
1,在出现该错误的页面头部的page中加入ValidateRequest="false",那么该页面的任何一次Post提交都不会再验证提交内容的安全性。
如:
ValidateRequest="false" % >
2,在web.config中的pages节中配置validateRequest="false",如:
<pages validateRequest="false" ></pages >
</system.web >
但这样,整个项目中的所有Form请求都不再验证提交内容的安全性,极不提倡这种做法。
关于该问题的安全的解决方案可以参看本站:
从客户端中检测到有潜在危险的Request.Form值的详细解决方案
3,如果你使用的是.Net 3.5,MVC 2.0及更高的版本,那么可以在处理Post方法的Action添加一个特性:[ValidateInput(false)],这样处理就更加有针对性,提高页面的安全性。
如:
[ValidateInput(false)]
public ActionResult CatalogEdit(Catalog model)
{
return View();
}
重要:
如果你使用的是MVC 3.0,那么你会发现做了以上的设置后还是无效。这是因为你还需要在web.config中做以下设置:
<httpRuntime requestValidationMode="2.0" / >
</system.web >
(唉~ 非常非常的麻烦啊)
注意:
在MVC项目中,Views文件夹下与主项目下,都会有一个web.config文件。Views下的web.config文件只对Views文件夹下面
的文件有效。如果你要处理的页面不在Views下面,那
么<httpRuntime requestValidationMode="2.0" / >一定要设置在主项目下的web.config
中才有用。
最新文章
- C#中精确计时的一点收获 【转】
- 关于iis8.5中发布的网站无法连接数据库的解决方案。
- [日常训练]mod
- 深入浅出Redis04使用Redis数据库(lists类型)
- codeforces 677B B. Vanya and Food Processor(模拟)
- [Locked] Paint Fence
- My.Ioc 代码示例——使用条件绑定和元数据(可选)构建插件树
- 自定义ActionBar背景(分别针对3.0以下和3.0以上的版本)
- VMware 下的Linux系统远程连接putty
- 34.编写2个接口:InterfaceA和InterfaceB;在接口InterfaceA中有个方法void printCapitalLetter();在接口InterfaceB中有个方法void printLowercaseLetter();然 后写一个类Print实现接口InterfaceA和InterfaceB,要求printCapitalLetter()方法 实现输出大写英文字母表的功能,
- c#接口使用详解
- MongoDB固定集合(Capped Collections)
- YiShop_商城系统如何做好口碑营销
- Git知识总览(二) git常用命令概览
- C++_进阶之函数模板_类模板
- (转)FIDDER教程
- Android 高仿微信朋友圈动态, 支持双击手势放大并滑动查看图片。
- C#设计模式(6)——原型模式
- fast-fail事件的产生及其解决办法
- vscode 同步配置
热门文章
- G面经prepare: Sort String Based On Another
- How to export a template in Visual Studio?
- linux时间的查看与修改
- 夺命雷公狗—angularjs—18—angularjs的事件
- 《科学》封面:人工智能终于能像人类一样学习 zz
- PAT乙级 1019. 数字黑洞 (20)
- [php]使用会话session
- [php]表单和验证
- C++头文件为什么要加#ifndef #define #endif
- Java编程思想重点