QueryString 整站过滤

对于QueryString的传值是每个程序员都要用到的。但是如何过滤QueryString的方法万千。下面我整理一个方法
大家继续优化讨论

第一步 web.config 加入键值

例如:
<add key="SafeRequest" value="id-int32,nid-int32,xid-int32,keyword-char" /> 

第二步 Global.asax 加入如下

void Application_BeginRequest(object source, EventArgs e)
    {
        String[] SafeRequest = System.Web.Configuration.WebConfigurationManager.AppSettings["SafeRequest"].ToString().Split(',');
        for (int i = 0; i < SafeRequest.Length; i++)
        {
            String RequestName = SafeRequest[i].Split('-')[0];
            String RequestType = SafeRequest[i].Split('-')[1];
            isValidRequest(RequestName, RequestType);
        }
       
    }
    public void isValidRequest(string parameterName, string parameterType)
    {
        string parameterValue = Request.QueryString[parameterName];
        if(parameterValue == null) return;

        if(parameterType.Equals("int32"))
        {
//future.mystring.IsNumeric是我自己做的一个类判断是不是数字。大家根据自己需要可以自行写一段(Bool)
            if(!future.mystring.IsNumeric(parameterValue)) Response.Redirect("index.aspx");
        }
        if (parameterType.Equals("char"))
        {
future.mystring.IsNumeric是我自己做的一个类判断是不是字符,是否含有敏感字符。大家根据自己需要可以自行写一段(Bool)
            if (!future.mystring.MatchSqlString(parameterValue)) Response.Redirect("index.aspx");
        }

    } 

 这样整站通用了只要是地址栏传值都会经过过滤的 如果不合法 都会跳转到自定义页面!!本例提供基本思路和代码希望大家继续讨论优化。。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值