博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】“从客户端(ctl00$Content$txtContent)中检测到有潜在危险的 Request.Form 值”之解...
阅读量:7055 次
发布时间:2019-06-28

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

转载自
最终编辑

“/WebSite”应用程序中的服务器错误。从客户端(ctl00$Content$txtContent="木木木木木木木<br />
")中检测到有潜在危险的 Request.Form 值。
说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示存在危及应用程序安全的尝试,如跨站点脚本攻击。若要允许页面重写应用程序请求验证设置,请将 httpRuntime 配置节中的 requestValidationMode 特性设置为 requestValidationMode="2.0"。示例: <httpRuntime requestValidationMode="2.0" />。设置此值后,可通过在 Page 指令或 <pages> 配置节中设置 validateRequest="false" 禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkId=153133。
异常详细信息: System.Web.HttpRequestValidationException: 从客户端(ctl00$Content$txtContent="木木木木木木木<br />
")中检测到有潜在危险的 Request.Form 值。

解决方法(不推荐)

A potentially dangerous Request.Form value was detected from the client (txtTest="<b>"). 由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值。立马报错。

解决方案一:

在.aspx文件头中加入这句:
<%@ Page validateRequest="false" %>

解决方案二:

修改web.config文件:
<configuration>
<system.web>

<httpRuntime requestValidationMode="2.0" />

<compilation debug="true">

<pages validateRequest="false" />
</system.web>
</configuration>

因为validateRequest默认值为true。只要设为false即可。

来源:[清清月儿]

禁止validateRequest的办法

解决方法(推荐)

为什么很多程序员想要禁止 validateRequest 呢?有一部分是真的需要用户输入"<>"之类的字符。这就不必说了。还有一部分其实并不是用户允许输入那些容易引起XSS的字符,而是讨厌这种报错的形式,毕竟一大段英文加上一个ASP.Net典型异常错误信息,显得这个站点出错了,而不是用户输入了非法的字符,可是自己又不知道怎么不让它报错,自己来处理报错。

对于希望很好的处理这个错误信息,而不使用默认ASP.Net异常报错信息的程序员们,你们不要禁用validateRequest=false。

正确的做法是在你当前页面添加Page_Error()函数,来捕获所有页面处理过程中发生的而没有处理的异常。然后给用户一个合法的报错信息。如果当前页面没有Page_Error(),这个异常将会送到Global.asax的Application_Error()来处理,你也可以在那里写通用的异常报错处理函数。如果两个地方都没有写异常处理函数,才会显示这个默认的报错页面呢。

举例而言,处理这个异常其实只需要很简短的一小段代码就够了。在页面的Code-behind页面中加入这么一段代码:

这样这个程序就可以截获 HttpRequestValidationException 异常,而且可以按照程序员的意愿返回一个合理的报错信息。

这段代码很简单,所以我希望所有不是真的要允许用户输入<xxx>之类字符的朋友,千万不要随意的禁止这个安全特性,如果只是需要异常处理,那么请用类似于上面的代码来处理即可。

而对于那些通过明确禁止了这个特性的程序员,自己一定要明白自己在做什么,而且一定要自己手动的检查必须过滤的字符串,否则你的站点很容易引发跨站脚本攻击。

 

转载于:https://www.cnblogs.com/Miko2012/archive/2012/05/07/2487029.html

你可能感兴趣的文章
Scala 深入浅出实战经典 第79讲:单例深入讲解及单例背后的链式表达式
查看>>
Reveal UI 分析工具分析手机 App
查看>>
扩展Bootstrap Tooltip插件使其可交互
查看>>
iOS多用连接、反向协议、安全
查看>>
Swift - 滚动视图(UIScrollView)的用法
查看>>
Altium Designer 出现错误提示(警告)adding items to hidden net GND/VCC
查看>>
poj 3270(置换 循环)
查看>>
RHCE7 管理I-12归档文件并在Linux系统间复制文件
查看>>
第十四回(一):外战折戟再图雪耻 石路徜徉终是难忘
查看>>
Android中Menu的基本用法
查看>>
接口JSon字符串格式
查看>>
[转]java基础学习总结——equals方法
查看>>
SVN相关
查看>>
MapReduce在实际编程“I/O”
查看>>
SecureCRT配色
查看>>
Spring、Spring MVC、MyBatis整合文件配置详解
查看>>
spring-mvc 与 openid4java
查看>>
iBatis简单入门教程
查看>>
将archlinux 2013-06-01版,安装配置为个人工作站
查看>>
十大流行Linux发行版
查看>>