一般站点安全首先要考虑到的是SQL注入的防范,下面就是一些通用的 防sql注入代码! <&B)i\j8=b
)[>{
Ie2
试试这两种方法: h^cM#L^B
第一种: {"-uaH>,
squery=lcase(Request.ServerVariables("QUERY_STRING")) q5Z]Z.%3O
sURL=lcase(Request.ServerVariables("HTTP_HOST")) K;Fy&p^d
L )kw Mk
SQL_injdata =":|;|>|<|--|sp_|xp_|\|dir|cmd|^|(|)|+|$|'|copy|format|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare" t}+P|$[
Gq?JMq#
SQL_inj = split(SQL_Injdata,"|") (r.[b
x:G uqE
For SQL_Data=0 To Ubound(SQL_inj) ca5Ir<mL
if instr(squery&sURL,Sql_Inj(Sql_DATA))>0 Then [$$i1%c%Z<
Response.Write "SQL通用防注入系统" Ju#
- >]
Response.end sZ_+6+ :
end if &iez{[O
next ~~z}yCl
n{aD4&
z]K:Amp;Z
ji5c0WH
第二种: M/T
ll]\|
SQL_injdata =":|;|>|<|--|sp_|xp_|\|dir|cmd|^|(|)|+|$|'|copy|format|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare" eX>x
+]l6
Kx7s
d i
SQL_inj = split(SQL_Injdata,"|") mqQN*.8*
`5:b=^'D/
If Request.QueryString<>"" Then h<JV6h :8
For Each SQL_Get In Request.QueryString wMr*D['" #
For SQL_Data=0 To Ubound(SQL_inj) O,u$L
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then (/JiOg^cw
Response.Write "SQL通用防注入系统" O(#DaFJv
Response.end :A"GOc,
end if )k$ +T%
next F@UbUm2o
Next
qi!+Ceo}
End If |bDUekjR
s9X?tWuL
If Request.Form<>"" Then bu$YW'
For Each Sql_Post In Request.Form OF-$*
For SQL_Data=0 To Ubound(SQL_inj) h_n`E7&bG
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then az/NZlJhT
Response.Write "SQL通用防注入系统" O!#r2Y"?K1
Response.end D5^wT>3>
end if @#rF8;
next {%gMA?b|"
next {W,&jC
end if &]tZ6
vL}e
1V:
第三种 2M@,g8O+B=
<% },+ &y^
'--------定义部份------------------ WS6'R
Dim Str_Post,Str_Get,Str_In,Str_Inf,Str_Xh,Str_db,Str_dbstr vq=nG]cE)
'自定义需要过滤的字串,用 "■"分离 Dn~c
Str_In = "'■;■and■exec■insert■select■delete■update■count■*■%■chr■mid■master■truncate■char■declare" DxoW,GW
'---------------------------------- 6fY-DqF!
%> [7_1GSS1
'*lVVeSiFw
<% 7Ji|x{``
Str_Inf = split(Str_In,"■") +VT/c
'--------POST部份------------------ ebfT%_N
If Request.Form<>"" Then wl7G6Y2
For Each Str_Post In Request.Form ZOw%Fw4B
m9M#)<@*
For Str_Xh=0 To Ubound(Str_Inf) P:KS*lOp
If Instr(LCase(Request.Form(Str_Post)),Str_Inf(Str_Xh))<>0 Then _Oc5g5_{
'--------写入数据库----------头----- #g=7fu{n:
Str_dbstr="DBQ="+server.mappath("SqlIn.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" 4j_\_:$w<
Set Str_db=Server.CreateObject("ADODB.CONNECTION") #p$iWY>e~
Str_db.open Str_dbstr &L`^\B]k|
Str_db.Execute("insert into SqlIn(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ) values('"&Request.ServerVariables("REMOTE_ADDR")&"','"&Request.ServerVariables("URL")&"','POST','"&Str_Post&"','"&replace(Request.Form(Str_Post),"'","''")&"')") =S#9\W&