博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
客户端中检测到有潜在危险的Request.Form 值的处理办法 VS2010 .NET 4.0
阅读量:5019 次
发布时间:2019-06-12

本文共 1204 字,大约阅读时间需要 4 分钟。

今天在添加discuz nt 论坛时,后台修改保存,提示报错,“客户端中检测到有潜在危险的Request.Form ”,

上网百度了下,找到如下的解决方案:

如果您使用的是.NET 4.0(4.0以下应该也可以的),需要在你的Web.config 中,在<system.web>节点下增加:

<pages validateRequest="false" />    //添加这句,问题解决
<httpRuntime requestValidationMode="2.0"/>
这样就可以了

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

由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值。立马报错上面的错误。
解决办法:
解决方案一: 
在.aspx文件头中加入这句: 
<%@ Page validateRequest="false"   %> 
解决方案二: 
修改web.config文件: 
<configuration> 
   <system.web> 
     <pages validateRequest="false" /> 
   </system.web> 
</configuration> 
因为validateRequest默认值为true。只要设为false即可。
当然,这样只能是让界面好看一些,要想抵制注入,还得从过滤上做足功夫
然后,还是有不禁用validateRequest的方法的,如下
不禁用validateRequest=false。
  正确的做法是在你当前页面添加Page_Error()函数,来捕获所有页面处理过程中发生的而没有处理的异常。然后给用户一个合法的报错信息。如果当前页面没有Page_Error(),这个异常将会送到Global.asax的Application_Error()来处理,你也可以在那里写通用的异常报错处理函数。如果两个地方都没有写异常处理函数,才会显示这个默认的报错页面呢。
  举例而言,处理这个异常其实只需要很简短的一小段代码就够了。在页面的Code-behind页面中加入这么一段代码:  
以下是引用片段:
protected void Page_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (ex is HttpRequestValidationException)
{
Response.Write("请您输入合法字符串。");
Server.ClearError(); // 如果不ClearError()这个异常会继续传到Application_Error()。
}
}

 

收藏下,留个纪念。

转载于:https://www.cnblogs.com/reddptp/p/3290781.html

你可能感兴趣的文章
EVENT
查看>>
MySQL添加用户、删除用户与授权
查看>>
pthon/零起点(一、集合)
查看>>
字符串比较
查看>>
WTM_LayUI 二级联动
查看>>
flush caches
查看>>
anjular2以及微信小程序的一点比较
查看>>
博客收藏
查看>>
SQL Server优化常用SQL语句
查看>>
[持续交付实践] pipeline使用:Multibranch Pipeline
查看>>
序列——列表和元组(二)
查看>>
js 关于闭包的小总结
查看>>
php
查看>>
知乎使用过程中的几个问题和改进建议
查看>>
$.extend
查看>>
html手机滑动事件
查看>>
十八、AWT绘图技术
查看>>
win2012 配置wamp的若干错误
查看>>
python操作数据库
查看>>
Vue2.0+elementUI使用echarts插件
查看>>