这是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文件里保存。 |
评论前必须登录!
注册