首页 新闻 会员 周边

我有一个搜索功能,如何禁止这个“从客户端(<)中检测到有潜在危险的 Request.Path 值。”

0
悬赏园豆:5 [已解决问题] 解决于 2014-01-21 21:14
<div id="search"><input id="txtIP" type="text" /> <input id="btnSubmit" type="button" value="查询" /></div>
<script type="text/javascript">// <![CDATA[
        $(function () {
            $("#btnSubmit").click(function () {
                var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\]<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]")
                var key = $.trim($("#txtIP").val()).replace("http://","").replace("https://");
                var rs = "";
                for (var i = 0; i < key.length; i++) {
                    rs = rs + key.substr(i, 1).replace(pattern, '');
                }
                window.location.href = "/" + rs + "/";
            })
        })

    
// ]]></script>

我是上面这样的功能代码,如果用户是老老实实从搜索框输入的话,jS会过滤特殊字符,功能没有问题。

但是如果用户不从搜索框搜索,直接这样访问http://localhost/<script>alert('haha')</script>/ ,后台就会报错“从客户端(<)中检测到有潜在危险的 Request.Path 值。”黄屏。

除了加 validateRequest="false"和修改web.config外,还有其它方法来预防吗?

问题补充:

我在Page_Load里都没法过滤啊

或者从哪里入手可以让它不报黄屏,而出现一个提示页面。

DZCMS的主页 DZCMS | 初学一级 | 园豆:5
提问于:2013-11-21 12:08
< >
分享
最佳答案
0

两种方式:1、如上楼,修改web.config和页面的ValidateRequest

2、在提交后台的时候,对提交的数据进行编码处理;

收获园豆:5
幻天芒 | 高人七级 |园豆:37175 | 2013-11-21 18:47

输入框提交的可以处理。我现在的问题是用户直接在浏览器地址栏中输入非法参数,这个不走page_load,直接就报黄页了。

或者应该在哪个管道中去处理?

DZCMS | 园豆:5 (初学一级) | 2013-11-21 21:23

@abc54288: Global中有个Application_Error,这里面去抓。

幻天芒 | 园豆:37175 (高人七级) | 2013-11-22 09:47
其他回答(1)
0

我也遇到过 不过就是 加了validateRequest="false"和修改web.config就好了

菜鸟的悲伤 | 园豆:20 (初学一级) | 2013-11-21 13:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册