从客户端(content="<p></p>")中检测到有潜在危险的 Request.Form 值。
出现这个问题,一般是由于.Net Framework 使用了4.0版本造成的。(从 .Net Framework 4.0 开始,ASP.NET开始强制检测Request参数安全),而我们可以通过修改 Web.config 来恢复 2.0 版本的模式。
第一种,
修改Web.config,增加requestValidationMode="2.0"属性值,<httpRuntime maxRequestLength="2097151" executionTimeout="3600" requestValidationMode="2.0" />,通过更改验证模式为2.0,同时在页头设置validateRequest="false" 。
mvc改法就是:
第二种,
通过ajax等方式提交数据,将富文本的内容先进行编码转换,然后在后台解码。
原来在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值,所以需要我们去掉验证。
解决方案如下:
给对应的controller的方法加特性 [ValidateInput(false)]
问题解决。
在网上查资料的时候,解决方法需要修改配置文件,
<httpRuntime requestValidationMode="2.0" />
并且这样做可能会带来安全问题,站点很容易引发跨站脚本攻击(http://www.shaoqun.com/a/29374.aspx)。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步