从客户端(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格式,如:“今天我写了一个博客...

&nbsp|&quot|&amp|&lt|&gt等html字符转义

请直接按CTRL+F搜索您要查找的转义字符。 常用表: No. 文字表記 10進表記 16進表記 文字   Comment 001 " "...

不知道发布端(即服务器端)是哪种发布技术的情况下,客户端使用axis去调用,报错:unexpected element (uri:&quot; Expected elements are &lt;

不知道发布端(即服务器端)是哪种发布技术的情况下,客户端使用axis去调用,报错: {http://xml.apache.org/axis/}stackTrace:Unmarshalling E...

客户端禁用cookie时session解决方案&lt;转&gt;

在PHP中使用过SESSION的朋友可能会碰到这么一个问题,SESSION变量不能跨页传递。这令我苦恼了好些日子,最终通过查资料思考并解决了这个问题。我认为,出现这个问题的原因有以下几点: 1、客...

net mvc4.5从客户端中检测到有潜在危险的 Request.Form 值 的解决方法

今天,在做一个mvc表单提交,其中内容框使用KindEditor插件,支持带html文本内容,结果在提交的时候遇到如下提示:   测试   查阅多方资料,大多修改方案如下:   可是我在根目录...
  • eadio
  • eadio
  • 2016年05月23日 11:15
  • 5013

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

从客户端中检测到有潜在危险的 Request.Form 值 由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值...

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

asp.net开发中,经常遇到“从客户端检测到有潜在危险的Request.Form 值”错误提示,很多人给出的解决方案是:1、web.config文档后面加入这一句: 示例: 2、在*.a...

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

当页面编辑或运行提交时,出现“从客户端中检测到有潜在危险的request.form值”问题,该怎么办呢?如下图所示: 下面博主汇总出现这种错误的几种解决方法: 问题原因:由于在asp.net中...
  • yl_99
  • yl_99
  • 2015年01月29日 10:00
  • 465

百度编辑器ueditor通过ajax方式提交,不需要事先转义字符的方法(异常:从客户端(xxx)中检测到有潜在危险的 Request.Form 值)

最近项目中使用百度编辑神器ueditor,确实是很好用的一款编辑器。官网教程提供的与后端数据交互都是跟表单方式有关的,项目中使用的是ajax方式提交,因此出现了不少问题,现在记录备忘下。 环境:.n...

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

解决方案一:         在当前页面 解决方案二:     修改web.config文件:                         因为validateRequ...
  • mg321
  • mg321
  • 2013年01月09日 11:35
  • 286
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从客户端(textarea=&quot;&lt;p&gt;wewqe&lt;/p&gt;&quot;)中检测到有潜在危险的 Request.QueryString 值。
举报原因:
原因补充:

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