在提交表单时候,asp.net 提示:"从客户端(......)中检测到有潜在危险的 Request.Form 值" 。

asp.net中的请求验证特性提供了某一等级的保护措施防止XSS攻击,asp.net的请求验证是默认启动的。

看看网络上的搜索的到解决方案。这里我主要说MVC3,4.0。

1、 在Controller调用的方法上添加[ValidateInput(false)]

[ValidateInput(false)]

2、 在web.config修改一处配置

<httpRuntime requestValidationMode="2.0"/>

requestValidationMode 有两个值:

2.0仅对网页启用请求验证。是启用还是关闭取决于 validateRequest。

4.0 默认值。任何 HTTP 请求都会启用请求验证,也就是说不光是网页,还包括 Cookie 等。此时强制启用,不管 validateRequest 为何值。

由于 requestValidationMode="4.0" 是强制启用,所以我们会发现在 .NET Framework 4.0 中仅靠设置 validateRequest 是关闭不了请求验证的,还得将 requestValidationMode 设置为 2.0。

ASP.NET中的请求验证特性提供了某一等级的保护措施防止XSS攻击,之前版本的ASP.NET的请求验证是默认启动的,但是他紧紧应用于ASP.NET页面中(.aspx文件和.aspx.cs文件)。

而在ASP.NET4中,请求验证默认对所有类型的请求启动,因为它在BeginRequest被调用之前启动,结果就是对所有资源的请求都要经过请求验证,而不仅仅在.aspx文件和他们的类文件中,甚至包括web service和自定义的httphandler。

同样,在自定义httpmodules读取http请求的时候,同样要经过请求验证。

这是ASP.Net提供的一个很重要的安全特性。因为很多程序员对安全没有概念,甚至都不知道XSS这种攻击的存在,知道主动去防护的就更少了。

ASP.Net在这一点上做到默认安全。这样让对安全不是很了解的程序员依旧可以写出有一定安全防护能力的网站。

但是往往我们需要添加富客户端编辑器的时候是肯定会返回HTML标签的~

看到的解决方案最后也是去掉,但是我觉得自定义验证更合适。

我的想法是新建一个类,继承该验证类验证前,先过滤Html标签和脚本标签等

然后再把值丢给原来的验证先让它Pass,不再抛异常,到了Controlle在进行处理!

这样的话就可以保留大多数的验证,而不是遇到这个我就设置2.0然后关闭验证等。

using Education.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Util;namespace Education.Web.Models
{public class GlobalRequestValidation : RequestValidator{public GlobalRequestValidation() { }protected override bool IsValidRequestString(HttpContext context, string value, RequestValidationSource requestValidationSource, string collectionKey, out int validationFailureIndex){string val = Utils.RemoveHTMLStr(value);bool isPass = base.IsValidRequestString(context, val, requestValidationSource, collectionKey, out validationFailureIndex);return isPass;}}
}

转载于:https://www.cnblogs.com/79039535/archive/2013/06/03/3115774.html

勤于思考:从客户端中检测到有潜在危险的 Request.Form 值相关推荐

  1. “从客户端中检测到有潜在危险的 Request.Form 值“的解决方案汇总

    "从客户端中检测到有潜在危险的 Request.Form 值"的解决方案汇总 参考文章: (1)"从客户端中检测到有潜在危险的 Request.Form 值"的 ...

  2. 从客户端中检测到有潜在危险的request.form值

    从客户端中检测到有潜在危险的request.form值 今天被这个问题卡住了,在用到CKEDITOR的时候,老是报错显示输入字符存在潜在危险,之后百度了一下,试了这两种方法: 解决方案一:     在 ...

  3. MVC中提示错误:从客户端中检测到有潜在危险的 Request.Form 值的详细解决方法...

    今天往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误:从客户端(Content="<EM ><STRONG ><U >这是测试这...&q ...

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

    在.net中,Request时出现有HTML.Javascript等字符串时,系统会认为是危险值,运行显示"从客户端--中检测到有潜在危险的Request.Form值"这样的错. ...

  5. 使用Asp.net MVC 2.0 +.NET 4.0 出现 “从客户端 ... 中检测到有潜在危险的 Request.Form 值”错误的解决办法...

    我们在用Asp.net 开发 Web Form页面时,通常要提交包含Html内容的数据给后台程序代码处理时,会为页面设置 ValidateRequest="false" 属性,设置 ...

  6. 从客户端中检测到有潜在危险的 request.form值[解决方法]

    当页面编辑或运行提交时,出现"从客户端中检测到有潜在危险的request.form值"问题,该怎么办呢?如下图所示: 下面博主汇总出现这种错误的几种解决方法: 问题原因:由于在as ...

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

    ASP.NET MVC4(Razor)从客户端中检测到有潜在危险的 Request.Form 值  "/"应用程序中的服务器错误. 从客户端(Content=" sdfd ...

  8. 从客户端中检测到有潜在危险的 Request.Form 值的解决方案汇总

    #事故现场 在一个asp.net 的项目中,前端通过ajax将富文本中的文字内容post到服务端的一个ashx中,在ashx中尝试读取参数值时, 结果报错:"从客户端中检测到有潜在危险的 R ...

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

    从客户端(xxxxxx)中检测到有潜在危险的 Request.Form 值.说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止.该值可能指示危及应用程序安全的尝试,如跨站点的脚本 ...

最新文章

  1. 字节跳动java笔试题目_牛客网--字节跳动面试题--特征提取
  2. DBA入门之路:由浅入深的总结学习法
  3. 朴素贝叶斯(NaïveBayes)
  4. ios app上架App Store需要多少费用?
  5. MyISAM和InnoDB执行引擎的区别,为什么MyISAM查询效率高,B树和B+树的区别
  6. 【Linux】一步一步学Linux——ulimit命令(218)
  7. java下包内继承时编译不过解决方案
  8. 你知道荷兰旗问题吗?
  9. Win10+CUDA10.0.130+cudnn7.4.1+tensorflow1.13.1+anaconda3 5.2.0+GTX1060
  10. google浏览器调试
  11. 使用imp导入工具导入dmp文件
  12. Android 播放本地 ts 格式视频
  13. 【Si24R2F+ Demo板】介绍说明与使用建议
  14. Unitue_逆流的处事原则
  15. 子在川上曰:nginx的安装和配置、node服务器的配置、mongdb的安装、pm2进行项目动态管理
  16. 【贪心算法】Wooden Sticks(资源调度问题)
  17. 农商银行计算机岗笔试题,广东农商银行金融科技岗笔试考什么?
  18. 国外问卷调查回答问题有什么技巧?
  19. BAT批处理如何去写Windows防火墙规则
  20. 情侣纪念日网站html5源码教程

热门文章

  1. html5游戏变速,深入游戏变速底层原理以及内核变速的实现
  2. SpringCloud服务注册启动的时候报错(com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException)
  3. 横河川仪压力变送器调零_YOKOGAWA/横河EJX110A差压变送器的性能误差和精度介绍!...
  4. protobuf前后端解析_Go语言微服务架构实战:第七节 Protobuf协议语法及原理
  5. java寻找最大的字母_【LeetCode(Java) - 744】寻找比目标字母大的最小字母
  6. java 裁剪 pdf_Java PDF 切割、截取、合并工具类、转图片等
  7. Linux 内核网络子系统 总结 (未完待续)
  8. FTP 服务搭建及常用的命令脚本及传输协议基础普及
  9. 3层交换机和2层交换机的区别
  10. currency类型_让我们一起走进VBA基本语法的世界,先了解一下数据类型有哪些