%@ language = vbscript codepage = 936%>
<%
'option explicit
'response.buffer = true
'防sql注入代码
dim fy_url,fy_a,fy_x,fy_cs(),fy_cl,fy_ts,fy_zx
fy_cl = 3 '处理方式:1=提示信息,2=转向页面,3=先提示再转向
fy_zx = "inc/error.htm" '出错时转向的页面
on error resume next
fy_url=request.servervariables("query_string")
fy_a=split(fy_url,"&")
redim fy_cs(ubound(fy_a))
on error resume next
for fy_x=0 to ubound(fy_a)
fy_cs(fy_x) = left(fy_a(fy_x),instr(fy_a(fy_x),"=")-1)
next
for fy_x=0 to ubound(fy_cs)
if fy_cs(fy_x)<>"" then
if instr(lcase(request(fy_cs(fy_x))),"'")<>0 or instr(lcase(request(fy_cs(fy_x))),";")<>0 or instr(lcase(request(fy_cs(fy_x))),":")<>0 or instr(lcase(request(fy_cs(fy_x))),"=")<>0 or instr(lcase(request(fy_cs(fy_x))),"(")<>0 or instr(lcase(request(fy_cs(fy_x))),")")<>0 or instr(lcase(request(fy_cs(fy_x))),"<")<>0 or instr(lcase(request(fy_cs(fy_x))),">")<>0 or instr(lcase(request(fy_cs(fy_x))),"char(")<>0 or instr(lcase(request(fy_cs(fy_x))),"and")<>0 or instr(lcase(request(fy_cs(fy_x))),"or")<>0 or instr(lcase(request(fy_cs(fy_x))),"select")<>0 or instr(lcase(request(fy_cs(fy_x))),"insert%20")<>0 or instr(lcase(request(fy_cs(fy_x))),"update%20")<>0 or instr(lcase(request(fy_cs(fy_x))),"delete%20from")<>0 or instr(lcase(request(fy_cs(fy_x))),"mid(")<>0 or instr(lcase(request(fy_cs(fy_x))),"count(")<>0 or instr(lcase(request(fy_cs(fy_x))),"asc(")<>0 or instr(lcase(request(fy_cs(fy_x))),"drop%20table")<>0 or instr(lcase(request(fy_cs(fy_x))),"net%20user")<>0 or instr(lcase(request(fy_cs(fy_x))),"truncate%20")<>0 or instr(lcase(request(fy_cs(fy_x))),"xp_cmdshell")<>0 or instr(lcase(request(fy_cs(fy_x))),"net%20localgroup%20administrators")<>0 or instr(lcase(request(fy_cs(fy_x))),"master.")<>0 then
select case fy_cl
case "1"
response.write ""
case "2"
response.write ""
case "3"
response.write ""
end select
response.end
end if
end if
next
'数据库连接代码
const issqldatabase = 0 '定义数据库类别,1为sql数据库,0为access数据库
dim conn,connstr
set conn = server.createobject("adodb.connection")
if issqldatabase = 1 then
'sql数据库连接参数:数据库名、用户密码、用户名、连接名(本地用local,外地用ip)
dim sqldatabasename,sqlpassword,sqlusername,sqllocalname
sqldatabasename = "sql数据库名"
sqlpassword = "数据库密码"
sqlusername = "数据库用户名"
sqllocalname = "(local)"
connstr = "provider = sqloledb; user id = " & sqlusername & "; password = " & sqlpassword & "; initial catalog = " & sqldatabasename & "; data source = " & sqllocalname & ";"
else
dim db
db = "database/data#data.asp"
connstr = "provider = microsoft.jet.oledb.4.0;data source = " & server.mappath(db)
end if
on error resume next
conn.open connstr
if err then
err.clear
set conn = nothing
response.write "sorry!数据库连接出错,网站可能正在维护中,请稍后访问。"
response.end
end if
%>
<%
function gottopic(str,strlen)
if str="" then
gottopic=""
exit function
end if
dim l,t,c, i
l=len(str)
t=0
for i=1 to l
c=abs(asc(mid(str,i,1)))
if c>255 then
t=t+2
else
t=t+1
end if
if t>=strlen then
gottopic=left(str,i) & " "
exit for
else
gottopic=str
end if
next
gottopic=gottopic
end function
%>