这是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文件里保存。
|