从客户端中检测到有潜在危险的 Request.Form 值

    今天,在做一个mvc表单提交,其中内容框使用 KindEditor插件,支持带html文本内容,结果在提交的时候遇到如下提示:

 

测试

 

 

查阅多方资料,大多修改方案如下:

 

 

可是我在根目录配置文件下做了以上调整,还是提示错误!!!

 

 

最后又想到可以直接根据当前Action方法不做判断的方法,一时想不起,经查找,设置如下:

 

最终展示效果如下:

 

 

***************************************************************************************************************

ps:最后有网友解释:ValidateRequest=”false”常用于Web Form项目,,requestValidationMode="2.0"用语MVC 3.0甚至更低版本。

***************************************************************************************************************

过了两天我又重新修改了下代码,我想吧content也使用request而不是直接写在action方法上的,结果经测试发现如果使用

string content=Request["content"];

客户端仍然返回错误提示!!!于是又是各种查资料,最后有看到解释:

问题原因由于你当前的.net ifreamwork框架环境是4.0

只要在web.config配置     <httpRuntime requestValidationMode="2.0" />   即可。

 

经测试确实有效,但是这样一来,就需要做好基本保护措施了。我把编辑器的查看源码去掉了。。。文本框设定了最大输入个数,在转码下保存。

由于我是要post到微信上的,因此不能进行Server.HtmlEncode(content)转码【测试过,发现转码了微信并没有在转换回来】。

 

不过最快的还是直接像我上面的写法吧,把content参数写在action方法里头,其他参数仍然使用request,这样就能避免content被检查,其他文本框字段又能被查找过滤。一举两得!!

 

posted @ 2018-04-27 09:19  落霞秋水  阅读(81)  评论(0编辑  收藏  举报