<%
' 判斷提交是否來自外部
公共函數 ChkPost()
暗淡伺服器_v1,伺服器_v2
檢查郵報=假
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
如果 Mid(server_v1,8,len(server_v2))=server_v2 那麼 Chkpost=True
結束功能
'系統分配隨機密碼
公共函數Createpass()
Dim Ran,i,LengthNum
長度數量=16
創建通行證=“”
對於 i=1 到 LengthNum
隨機化
Ran = CInt(Rnd * 2)
隨機化
如果 Ran = 0 那麼
Ran = CInt(Rnd * 25) + 97
Createpass =Createpass& UCase(Chr(Ran))
ElseIf Ran = 1 那麼
Ran = CInt(Rnd * 9)
建立通行證 = 建立通行證 & Ran
ElseIf Ran = 2 那麼
Ran = CInt(Rnd * 25) + 97
Createpass =Createpass& Chr(Ran)
結束如果
下一個
結束功能
' 重寫執行
雷姆函數
公共函數執行(命令)
如果不是 IsObject(Conn) 則是 ConnectionDatabase
'檢查權限,防止注入攻擊
如果 InStr(LCase(Command),"dv_admin")>0 且 Left(ScriptName,6)<> "admin_" 那麼
回應.Write SaveSQLLOG(命令,"")
Command=替換(LCase(命令),"dv_admin","dv"&Chr(95)&"admin")
結束如果
如果 IsDeBug = 0 那麼
出錯時繼續下一步
設定執行= Conn.執行(指令)
如果出錯那麼
錯誤清除
設定 Conn = 無
Response.Write SaveSQLLOG(Command,"查詢資料的時候發現錯誤,請檢查您的查看程式碼是否正確。
基於安全的理由,只顯示本訊息,要詳細的錯誤訊息,請修改您的程式檔案conn .asp。 把""Const IsDeBug = 0""改為:""Const IsDeBug = 1""")
回應.結束
結束如果
別的
'回應.寫入命令和“
”
設定執行= Conn.執行(指令)
結束如果
SqlQueryNum = SqlQueryNum+1
End Function
'記錄查詢錯誤事件
公共函數 SaveSQLLOG(sCommand,訊息)
昏暗lConnStr,lConn,ldb,SQL,RS
ldb =“資料/DvSQLLOG.mdb”
lConnStr =「提供者= Microsoft.Jet.OLEDB.4.0;資料來源=」&Server.MapPath(ldb)
設定 lConn = Server.CreateObject("ADODB.Connection")
lConn.Open lConnStr
設定 Rs = Server.CreateObject("adodb.recordset")
Sql =“從 dv_sql_log 選擇*”
Rs.open sql,lconn,1,3
新增盧比
Rs("腳本名稱")=腳本名稱
Rs("S_Info")=左(sCommand,255)
Rs("ip")=UserTrueIP
更新盧比
關閉盧比
lConn.執行(SQL)
lConn.關閉
設定 lConn = 無
保存SQLLOG=訊息
結束功能
'IP來源
公共功能位址(sip)
變暗 aConnStr,aConn,adb
變暗 str1,str2,str3,str4
點數
昏暗的鄉村,城市
調暗,SQL
如果 IsNumeric(Left(sip,2)) 那麼
若 sip="127.0.0.1" 則 sip="192.168.0.1"
str1=左(sip,InStr(sip,".")-1)
sip=mid(sip,instr(sip,".")+1)
str2=左(sip,instr(sip,".")-1)
sip=Mid(sip,InStr(sip,".")+1)
str3=左(sip,instr(sip,".")-1)
str4=Mid(sip,instr(sip,".")+1)
如果 isNumeric(str1)=0 或 isNumeric(str2)=0 或 isNumeric(str3)=0 或 isNumeric(str4)=0 那麼
別的
num=CLng(str1)*16777216+CLng(str2)*65536+CLng(str3)*256+CLng(str4)-1
adb =“資料/ip位址.mdb”
aConnStr =「提供者= Microsoft.Jet.OLEDB.4.0;資料來源=」&Server.MapPath(adb)
設定 AConn = Server.CreateObject("ADODB.Connection")
aConn.Open aConnStr
sql="從 dv_address 選擇前 1 個國家、城市,其中 ip1 <="&num&" 和 ip2 >="&num&""
設定 irs=aConn.execute(sql)
如果 irs.EOF 和 irs.bof 那麼
國家=“亞洲”
城市=“”
別的
國=國稅局(0)
城市=國稅局(1)
結束如果
設定 irs=無
設定 aConn = 無
SqlQueryNum = SqlQueryNum+1
結束如果
地址=國家&城市
別的
地址=“未知”
結束如果
結束功能
'為用戶發布的各種資訊過濾,帶髒話過濾
公用函數 HTMLEncode(fString)
如果不是 IsNull(fString) 那麼
fString = 替換(fString, ">", ">")
fString = 替換(fString, "<", "<")
fString = 替換(fString, CHR(32), " ") '
fString = 替換(fString, CHR(9), " ") '
fString = 替換(fString, CHR(34), """)
fString = Replace(fString, CHR(39), "'") '過濾單引號
fString = 替換(fString, CHR(13), "")
fString = 替換(fString, CHR(10) & CHR(10), "
")
fString = 替換(fString, CHR(10), "
")
fString=ChkBadWords(fString)
HTMLEncode = fString
結束如果
結束功能
'用於論壇本身的過濾,不帶髒話過濾
公用函數 iHTMLEncode(fString)
如果不是 IsNull(fString) 那麼
fString = 替換(fString, ">", ">")
fString = 替換(fString, "<", "<")
fString = 替換(fString, CHR(32), " ")
fString = 替換(fString, CHR(9), " ")
fString = 替換(fString, CHR(34), """)
fString = 替換(fString, CHR(39), "'")
fString = 替換(fString, CHR(13), "")
fString = 替換(fString, CHR(10) & CHR(10), "
")
fString = 替換(fString, CHR(10), "
")
iHTMLEncode = fString
結束如果
結束功能
公共函數 strLength(str)
如果 isNull(str) 或 Str = "" 那麼
長度 = 0
退出功能
結束如果
暗淡的 WINNT_CHINESE
WINNT_CHINESE=(len("例")=2)
如果 WINNT_CHINESE 那麼
調暗l、t、c
昏暗的我
l=len(str)
t=l
對於 i=1 到 l
c=asc(中(str,i,1))
如果 c<0 則 c=c+65536
如果 c>255 則 t=t+1
下一個
字串長度=t
別的
str長度=len(str)
結束如果
結束功能
公用函數 ChkBadWords(Str)
如果 IsNull(Str) 則退出函數
昏暗的我
對於 i = 0 至 Ubound(BadWords)
如果 i > UBound(rBadWord) 那麼
Str = 替換(Str,BadWords(i),"*")
別的
Str = 替換(Str,BadWords(i),rBadWord(i))
結束如果
下一個
ChkBadWords = Str
結束功能
公用函數 Checkstr(Str)
如果為 null(Str) 那麼
檢查Str =“”
退出功能
結束如果
CheckStr = Replace(Str,"'","''")
結束功能
'取得帶有連接埠的URL,推薦使用
屬性取得 Get_ScriptNameUrl()
如果 request.servervariables("SERVER_PORT")="80" 那麼
Get_ScriptNameUrl="http://" & request.servervariables("server_name")&replace(lcase(request.servervariables("script_name")),ScriptName,"")
別的
Get_ScriptNameUrl="http://" & request.servervariables("server_name")&":"&request.servervariables("SERVER_PORT")&replace(lcase(request.servervariables("script_name")),ScriptName,"")
結束如果
End Property
'檢查Email位址有效
函數IsValidEmail(電子郵件)
暗淡的名字,名字,i,c
有效電子郵件 = true
姓名=拆分(電子郵件,“@”)
如果 UBound(names) <> 1 那麼
有效電子郵件 = false
退出功能
結束如果
對於名稱中的每個名稱
如果 Len(name) <= 0 那麼
有效電子郵件 = false
退出功能
結束如果
對於 i = 1 到 Len(name)
c = Lcase(Mid(姓名, i, 1))
如果 InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 且不是 IsNumeric(c) 那麼
有效電子郵件 = false
退出功能
結束如果
下一個
如果左(名稱,1)=“。”或 Right(name, 1) = "."然後
有效電子郵件 = false
退出功能
結束如果
下一個
如果 InStr(names(1), ".") <= 0 那麼
有效電子郵件 = false
退出功能
結束如果
i = Len(名稱(1)) - InStrRev(名稱(1), ".")
如果 i <> 2 且 i <> 3 那麼
有效電子郵件 = false
退出功能
結束如果
如果 InStr(電子郵件, "..") > 0 那麼
有效電子郵件 = false
結束 if
結束函數
函數 strLength(str)
出現錯誤繼續下一步
暗淡的WINNT_CHINESE
WINNT_CHINESE = (len("論壇")=2)
如果 WINNT_CHINESE 那麼
昏暗的l、t、c
昏暗的我
l=len(str)
t=l
對於 i=1 到 l
c=asc(中(str,i,1))
如果 c<0 則 c=c+65536
如果 c>255 則
t=t+1
結束如果
下一個
字串長度=t
別的
str長度=len(str)
結束如果
如果 err.number<>0 則 err.clear
結束函數
function cutStr(str,strlen)
昏暗的l、t、c
l=len(str)
時間=0
對於 i=1 到 l
c=Abs(Asc(Mid(str,i,1)))
如果 c>255 則
t=t+2
別的
t=t+1
結束如果
如果 t>=strlen 那麼
cutStr=左(str,i)&“...”
退出
別的
cutStr=str
結束如果
下一個
cutStr=替換(cutStr,chr(10),"")
結束函數
函數fixjs(Str)
如果 Str <>"" 那麼
str = 替換(str,"","\")
Str = 替換(str, chr(34), """")
Str = 替換(str, chr(39),"'")
Str = 替換(str, chr(13), "n")
Str = 替換(str, chr(10), "r")
str = 替換(str,"'","'")
結束如果
修復js=Str
結束功能
函數 enfixjs(Str)
如果 Str <>"" 那麼
Str = 替換(str,"'","'")
Str = 替換(str,"""" , chr(34))
Str = 替換(str, "'",chr(39))
Str = 替換(str, "r", chr(10))
Str = 替換(str, "n", chr(13))
Str = 替換(str,"\","")
結束如果
enfixjs=Str
結束功能
類別 Cls_Browser
公共瀏覽器、版本、平台
私有子類別_Initialize()
瀏覽器=“未知”
版本=“未知”
平台=“未知”
暗淡代理
代理=Request.ServerVariables("HTTP_USER_AGENT")
代理=拆分(代理,“;”)
如果 InStr(Agent(1),"MSIE")>0 則
瀏覽器=“Microsoft Internet Explorer”
版本=修剪(左(替換(代理(1),“MSIE”,“”),6))
ElseIf InStr(Agent(4),"Netscape")>0 那麼
瀏覽器=“網景”
昏暗臨時字串
tmpstr=分割(代理(4),"/")
版本=tmpstr(UBound(tmpstr))
結束如果
如果 InStr(Agent(2),"NT 5.2")>0 則
平台=“Windows 2003”
ElseIf InStr(Agent(2),"NT 5.1")>0 那麼
平台=“Windows XP”
ElseIf InStr(Agent(2),"NT 5.0")>0 則
平台=“Windows 2000”
ElseIf InStr(Agent(2),"9x")>0 那麼
平台=“Windows ME”
ElseIf InStr(Agent(2),"98")>0 則
平台=“Windows 98”
ElseIf InStr(Agent(2),"95")>0 則
平台=“Windows 95”
結束如果
'記錄未知代理
如果瀏覽器=「未知」或版本=「未知」或平台=「未知」那麼
Agent=Dvbbs.checkStr(Request.ServerVariables("HTTP_USER_AGENT"))
昏暗 lConnStr,lConn,ldb
ldb =“資料/DvSQLLOG.mdb”
lConnStr =「提供者= Microsoft.Jet.OLEDB.4.0;資料來源=」&Server.MapPath(ldb)
設定 lConn = Server.CreateObject("ADODB.Connection")
lConn.Open lConnStr
lConn.Execute("插入[Agent](UserAgent)Values('" & Agent & "')")
lConn.關閉
設定 lConn = 無
結束如果
結束子
結束課程
%>