asp.net 360通用防护代码,防止sql注入与xss跨站漏洞攻击

这是360提供的一个aspx公用代码,可以防止sql注入漏洞,xss跨站攻击漏洞,如果您的网站被360扫描,出现sql注入或跨站攻击等相关漏洞,没有较好的解决方案,倒是可以采用该方法进下防范。

-----------------使用方法-------------------

1.将App_Code目录拷贝到web根目录

假如已经存在App_Code目录,那直接把App_Code目录里的360safe.cs文件拷贝到当前的App_Code目录即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using  System;
using  System.Web;
using  System.Text;
using  System.Text.RegularExpressions;
public  class  safe_360
{
     private  const  string  StrRegex =  @"<[^>]+?style=[\w]+?:expression\(|\b(alert|confirm|prompt)\b|^\+/v(8|9)|<[^>]*?=[^>]*?&#[^>]*?>|\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|/\*.+?\*/|<\s*script\b|<\s*img\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)" ;
     public  static  bool  PostData()
     {
         bool  result =  false ;
         for  ( int  i = 0; i < HttpContext.Current.Request.Form.Count; i++)
         {
             result = CheckData(HttpContext.Current.Request.Form[i].ToString());
             if  (result)
             {
                 break ;
             }
         }
         return  result;
     }
  
     public  static  bool  GetData()
     {
         bool  result =  false ;
         for  ( int  i = 0; i < HttpContext.Current.Request.QueryString.Count; i++)
         {
             result = CheckData(HttpContext.Current.Request.QueryString[i].ToString());
             if  (result)
             {
                 break ;
             }
         }
         return  result;
     }
     public  static  bool  CookieData()
     {
         bool  result =  false ;
         for  ( int  i = 0; i < HttpContext.Current.Request.Cookies.Count; i++)
         {
             result = CheckData(HttpContext.Current.Request.Cookies[i].Value.ToLower());
             if  (result)
             {
                 break ;
             }
         }
         return  result;
     
     }
     public  static  bool  referer()
     {
         bool  result =  false ;
         return  result = CheckData(HttpContext.Current.Request.UrlReferrer.ToString());
     }
     public  static  bool  CheckData( string  inputData)
     {
         if  (Regex.IsMatch(inputData, StrRegex))
         {
             return  true ;
         }
         else
         {
             return  false ;
         }
     }
}

2.将Global.asax文件拷贝到web根目录

假如已经存在Global.asax文件,那直接把下面这段代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
      void  Application_BeginRequest( object  sender, EventArgs e)
     {
             if  (Request.Cookies !=  null )
             {
                 if  (safe_360.CookieData())
                 {
                     Response.Write( "您提交的Cookie数据有恶意字符!" );
                     Response.End();
                 
                 }
            
             }
             if  (Request.UrlReferrer !=  null )
             {
                 if  (safe_360.referer())
                 {
                     Response.Write( "您提交的Referrer数据有恶意字符!" );
                     Response.End();
                 }
             }
             if  (Request.RequestType.ToUpper() ==  "POST" )
             {
                 if  (safe_360.PostData())
                 {
                     Response.Write( "您提交的Post数据有恶意字符!" );
                     Response.End();
                 }
             }
             if  (Request.RequestType.ToUpper() ==  "GET" )
             {
                 if  (safe_360.GetData())
                 {
                     Response.Write( "您提交的Get数据有恶意字符!" );
                     Response.End();
                 }
             }           
     }

拷贝到当前的Global.asax文件里保存。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值