博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
勤于思考:从客户端中检测到有潜在危险的 Request.Form 值
阅读量:6094 次
发布时间:2019-06-20

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

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

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

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

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

[ValidateInput(false)]

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

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

你可能感兴趣的文章
tomcat无法正确解析请求参数
查看>>
图像处理之opencv---加减乘除运算cvdiv
查看>>
[C# 网络编程系列]专题六:UDP编程
查看>>
AE中实现Control中的各种图形工具的方法
查看>>
使用cygwin在windows上模拟unix环境,解决不能显示中文的问题
查看>>
No module named urls最新解决方法
查看>>
linux 中 用户管理 (composer 时不能root 遇到)
查看>>
for循环json对象取值
查看>>
EF中Repository模式应用场景
查看>>
单位圆盘的全纯自同构群Aut B(0,1)
查看>>
实验二 Java面向对象程序设计
查看>>
Sicily 1504:Slim Span(最小生成树)
查看>>
(树)Subtrees -- hdu -- 5524
查看>>
------__________________________9余数定理-__________ 1163______________
查看>>
webapp返回上一页 处理
查看>>
新安装的WAMP中phpmyadmin的密码问题
查看>>
20172303 2017-2018-2 《程序设计与数据结构》第5周学习总结
查看>>
11.查询截取分析_慢查询日志
查看>>
(转)HTML的代码(从朋友那转的,看着觉得会有用就转了)
查看>>
eclipse中将一个项目作为library导入另一个项目中
查看>>