从客户端(textarea="<p>wewqe</p>")中检测到有潜在危险的 Request.QueryString 值。

原创 2015年07月08日 13:43:29

用过富文本编辑器的人应该会遇到过这类似的问题,就是在我对富文本上的文字进行保存的时候,有2种方式,一

种是纯文本信息,如:“今天我写了一个博客”,而另一种就是纯html格式,如:<p>“今天我写了一个博客”</p>。


有的时候我们为了方便对文本信息的处理可能会将编辑的内容保存成html格式存放到数据库,这样可以方便我们的后续操作,比如原来的一些样式不会变,但你存string字符串格式获取到文本后就得重新编排了,所以很显然html格式很实用。


但是,问题来了。我们存html格式的数据会存在一个验证问题,如下:



参考网上众多案例分析,以asp.net为例,有这样做的:

validateRequest="false"

也有这样做的:修改web.config文件:

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

web.config里面加上

<system.web>
    <httpRuntime requestValidationMode="2.0" />
</system.web>


诸此种种...


然而我发现这并没有什么卵用




1.首先我用的是MVC模式,可能环境不一样这样做的效果貌似行不通


2.项目文件大了有的东西不是说改就能改的,何况4.0或者4.5的程序改成2.0的是要冒一点风险性的


3.不安全。


关于不安全这一点我的理解是,存在这个异常(问题/bug)绝非是偶然的,用哲学的话来讲叫存在即合理,说白了这里之所以提示具有潜在的危险值应该是开发工具的一个智能检测,像上面提到的,存html格式的文本信息的时候“<p>“今天我写了一个博客”</p>”是这样的,里面包含特殊字符,如“<>”尖括号。这样的值在某些时候对于数据库可能是致命的,众所周知的就是SQL注入式攻击,一般在处理添加数据的时候都会有验证来防止这个,但是文本编辑器处理的文本多了问题也就来了。


说到这里你可能想到解决办法了,既然注入式攻击是从添加的时候做正则验证来避免的,那么这里是不是也可以这样?


由于文本编辑器在输入值的时候是不带hml标记的,只有取值的时候你才知道那些标记是怎样回事,因此这里用正则之类的验证不合理,综合以上种种方法的优劣性,我换了一种方式实现数据的存取,就是对获取的字符串进行编码和解码处理!


编码:



存放到数据库中的字符串样例:



解码:



编码解码简化样例:

var html="<p>今天写了一篇长长的博客</p>";//需要编码的字符串

var htmlEscape=escape(html);//编码

//----存放到数据库----

//----从数据库取出----用变量htmlSQL接收

var htmlUnEscape=unescape(htmlSQL);//解码

//---然后alert弹窗测试,和原来的值一样,但是最开始的那个问题解决了.....虽然写了很多,但解决问题也就2行代码,以上侧重思路。



Sakura,2015.7.8号编制





版权声明:Sakura丶紫嫣的专属博客网站,更多交流请加QQ:996214487

从客户端(textarea=&quot;&lt;p&gt;wewqe&lt;/p&gt;&quot;)中检测到有潜在危险的 Request.QueryString 值。

用过富文本编辑器的人应该会遇到过这类似的问题,就是在我对富文本上的文字进行保存的时候,有2种方式,一 种是纯文本信息,如:“今天我写了一个博客”,而另一种就是纯html格式,如:“今天我写了一个博客...
  • qq_20916285
  • qq_20916285
  • 2015年07月08日 13:43
  • 2377

从客户端(content1=&quot;&lt;img src=&quot;/web/news/...&quot;)中检测到有潜在危险的 Request.Form 值。

kindeditor一开始一直不能上传图片 配置了所有应该配置的参数,从网上找各种大神贴,依旧不行,本来都是测试成功的不知道问啥突然就不能上传图片,蓝瘦香菇一阵后决定重新下载安装配置,整了一波后终于...
  • u013231020
  • u013231020
  • 2017年06月08日 18:31
  • 336

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

【详细错误】:从客户端(SaveXML="...="39038"/>")中检测到有潜在危险的 Request.Form 值。 【错误经过】:自.net1.1迁移至.net4.0时出现,原webconf...
  • abandonship
  • abandonship
  • 2012年08月14日 11:20
  • 4894

从客户端(content1="...")中检测到有潜在危险的 Request.Form 值

解决方法: 修改web.co
  • u011643500
  • u011643500
  • 2014年05月16日 19:57
  • 1314

从客户端*****中检测到有潜在危险的 Request.QueryString 值? 出错对策(转)

异常详细信息: System.Web.HttpRequestValidationException: 从客户端(ID="解决办法:一个解决方法是在web.config的里面加入对全局有效示例:    ...
  • guwenzhong
  • guwenzhong
  • 2009年11月11日 13:00
  • 2424

System.Web.HttpRequestValidationException: 从客户端(XML=&quot;&lt;?xml version=\&quot;1.0\...&quot;)中检测到

调试webservices时的报的错误: 测试数据如下: test123TCM301220171203001762017-11-10 16:27:43333555566677771134567普通数据...
  • sat472291519
  • sat472291519
  • 2016年11月11日 14:02
  • 4835

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

[ValidateInput(false)] public ActionResult About(string name) { ViewBag....
  • shujudeliu
  • shujudeliu
  • 2014年11月03日 11:31
  • 2482

从客户端(&)中检测到有潜在危险的 Request.Path 值解决方案

出这个问题基本上是在转址字符串中有非法字符“   方案1:   如果仅仅只是转换页面,传参时出现的问题,可对数据加密: 绑定数据传值时加密 解密:HttpUtility.UrlDecode(requ...
  • qq380107165
  • qq380107165
  • 2012年05月10日 19:47
  • 75039

如何使网站不出现从客户端(:)中检测到有潜在危险的 Request.Path 值这样类似的提示

从.net4.0开始,微软加入了对特殊字符的限制。默认的是7个特殊字符:requestPathInvalidCharacters = “,*,%,&,:,\” 一旦有这7个特殊字符,则asp.net...
  • sxf359
  • sxf359
  • 2016年11月08日 17:57
  • 3849

从客户端(&)中检测到有潜在危险的Request.Path值解决方案

出这个问题基本上是在转址字符串中有非法字符“   方案1:   如果仅仅只是转换页面,传参时出现的问题,可对数据加密: 绑定数据传值时加密 解密:HttpUtility...
  • qq_18145031
  • qq_18145031
  • 2017年03月21日 10:37
  • 1138
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从客户端(textarea=&quot;&lt;p&gt;wewqe&lt;/p&gt;&quot;)中检测到有潜在危险的 Request.QueryString 值。
举报原因:
原因补充:

(最多只允许输入30个字)