WEB SQL注入与XSS跨站请求

       SQL注入、XSS的跨站入侵,已是老的话题,但很多时候前端开发人员一不留神则会忽略了此类安全的过滤。以下通过简单的代码示例展示这两种入侵的全局屏蔽,当然如果你需求对URL中特殊页面传输敏感字符,则可增加页面配置规则,放行即可。

       考虑到非法请求有两种:GET方式:Encode之前、Encode之后的URL串,POST方式:表单提交;所有欲全局控制,则可在APP请求生命周期的最前端完成拦截(.NET:httpmodule、httphandler)。对GET请求,Encode前后分别做校验,对form方式数据,则需要全局遍历Form数据,本示例仅给出GET方式的Request请求处理。

示例:

            string regexsString = @"\'|;|#|--|<|>|\*|\+|\(|\)|chr(34)|chr(0)|([\s\b+()]+(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b+]*)";
            string url = HttpContext.Current.Request.RawUrl.ToString();

            bool IsValid = true;
            Regex regex = new Regex(regexsString, RegexOptions.IgnoreCase);
            string decodeUrl = HttpUtility.UrlDecode(url);
            if (regex.IsMatch(url) || regex.IsMatch(decodeUrl))
            {
                IsValid = false;
            }
            if (!IsValid)
            {
                LogHelper.Security("Security:", "非法的SQL注入" + " Ip:" + GlobalItem.GetRequestIP + ", Url:" + url);
                HttpContext.Current.Response.Redirect("ErrorPage.aspx?code=" + ErrorDefine.INVALID_SQL_INJECT);
            }

regexsString 用以配置过滤敏感字符的规则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值