<%
' 判断提交是否來自外部
Fonction publique ChkPost()
Dim serveur_v1, serveur_v2
Chkpost=Faux
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
Si Mid(server_v1,8,len(server_v2))=server_v2 Alors Chkpost=True
Fonction de fin
'系统分配随机密码
Fonction publique Createpass()
Dim Ran,i,LongueurNum
Numéro de longueur = 16
Créerpass=""
Pour i=1 à LongueurNum
Randomiser
Ran = CInt(Rnd * 2)
Randomiser
Si Ran = 0 Alors
Ran = CInt(Rnd * 25) + 97
Createpass =Createpass& UCase(Chr(Ran))
SinonSi Ran = 1 Alors
Ran = CInt(Rnd * 9)
Createpass = Createpass & Ran
SinonSi Ran = 2 Alors
Ran = CInt(Rnd * 25) + 97
Createpass =Créerpass& Chr(Ran)
Fin si
Suivant
Fonction de fin
'重写exécuter
Fonction Rem
Exécution de fonction publique (commande)
Si ce n'est pas IsObject (Conn), alors ConnectionDatabase
'检查权限,防止注入攻击
Si InStr(LCase(Command),"dv_admin")>0 Et Left(ScriptName,6)<> "admin_" Alors
Réponse.Write SaveSQLLOG(Command,"")
Command=Remplacer(LCase(Command),"dv_admin","dv<i>"&Chr(95)&"</i>admin")
Fin si
Si IsDeBug = 0 Alors
En cas d'erreur, reprendre ensuite
Définir Exécuter = Conn.Execute (Commande)
Si erreur alors
err.Effacer
Définir Conn = Rien
Response.Write SaveSQLLOG(Command,"查询数据的时候发现错误,请检查您的查询代码是否正确。<br>基于安全的理由,只显示本信息,要查看详细的错误信息,请修改您的程序文件conn.asp。把""Const IsDeBug = 0""改为:""Const IsDeBug = 1""")
Réponse.Fin
Fin si
Autre
'Commande Response.Write & "<br>"
Définir Exécuter = Conn.Execute (Commande)
Fin si
NuméroRequêteSql = NuméroRequêteSql+1
Fonction de fin
'记录查询错误事件
Fonction publique SaveSQLLOG(sCommand,message)
Dim lConnStr,lConn,ldb,SQL,RS
ldb = "données/DvSQLLOG.mdb"
lConnStr = "Provider = Microsoft.Jet.OLEDB.4.0; Source de données = " & Server.MapPath(ldb)
Définir lConn = Server.CreateObject("ADODB.Connection")
lConn.Ouvrir lConnStr
Définir Rs = Server.CreateObject("adodb.recordset")
SQL="sélectionner * depuis dv_sql_log"
Rs.open sql,lconn,1,3
Rs.ajouternouveau
Rs("NomScript")=NomScript
Rs("S_Info")=Gauche(sCommand,255)
Rs("ip")=UtilisateurTrueIP
Rs.mise à jour
Rs.fermer
lConn.Execute(SQL)
lConn.Fermer
Définir lConn = Rien
EnregistrerSQLLOG = message
Fin de la fonction
'IP来源
Adresse de fonction publique (sip)
Dim aConnStr,aConn,adb
Dim str1, str2, str3, str4
Dim num
Pays sombre, ville
Dim irs,SQL
Si EstNumérique(Gauche(sip,2)) Alors
Si sip="127.0.0.1" Alors sip="192.168.0.1"
str1=Gauche(sip,InStr(sip,".")-1)
sip=mid(gorgée,instr(gorgée,".")+1)
str2=Gauche(sip,instr(sip,".")-1)
sip=Mid(gorgée,InStr(gorgée,".")+1)
str3=Gauche(sip,instr(sip,".")-1)
str4=Mid(gorgée,instr(gorgée,".")+1)
Si isNumeric(str1)=0 ou isNumeric(str2)=0 ou isNumeric(str3)=0 ou isNumeric(str4)=0 Alors
Autre
num=CLng(str1)*16777216+CLng(str2)*65536+CLng(str3)*256+CLng(str4)-1
adb = "données/adresseip.mdb"
aConnStr = "Provider = Microsoft.Jet.OLEDB.4.0; Source de données = " & Server.MapPath(adb)
Définir AConn = Server.CreateObject("ADODB.Connection")
aConn.Open aConnStr
sql="sélectionnez le premier pays et ville à partir de dv_address où ip1 <="&num&" et ip2 >="&num&""
Définir irs=aConn.execute(sql)
Si irs.EOF et irs.bof Alors
country="亚洲"
ville=""
Autre
pays=irs(0)
ville=irs(1)
Fin si
Définir irs=Rien
Définir aConn = Rien
NuméroRequêteSql = NuméroRequêteSql+1
Fin si
adresse = pays et ville
Autre
adresse="未知"
Fin si
Fonction de fin
'用于用户发布的各种信息过滤,带脏话过滤
Fonction publique HTMLEncode(fString)
Si ce n'est pas IsNull (fString) alors
fString = remplacer (fString, ">", ">")
fString = remplacer(fString, "<", "<")
fString = Remplacer(fString, CHR(32), " ") '
fString = Remplacer(fString, CHR(9), " ") '
fString = Remplacer(fString, CHR(34), """)
fString = Replace(fString, CHR(39), "'") 'Remarque
fString = Remplacer(fString, CHR(13), "")
fString = Remplacer(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Remplacer(fString, CHR(10), "<BR> ")
fString=ChkBadWords(fString)
HTMLEncode = fChaîne
Fin si
Fonction de fin
'用于论坛本身的过滤,不带脏话过滤
Fonction publique iHTMLEncode(fString)
Si ce n'est pas IsNull (fString) alors
fString = remplacer (fString, ">", ">")
fString = remplacer(fString, "<", "<")
fString = Remplacer(fString, CHR(32), " ")
fString = Remplacer(fString, CHR(9), " ")
fString = Remplacer(fString, CHR(34), """)
fString = Remplacer(fString, CHR(39), "'")
fString = Remplacer(fString, CHR(13), "")
fString = Remplacer(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Remplacer(fString, CHR(10), "<BR> ")
iHTMLEncode = fChaîne
Fin si
Fonction de fin
Fonction publique strLength(str)
Si isNull(str) ou Str = "" Alors
LongueurStre = 0
Fonction de sortie
Fin si
Faible WINNT_CHINESE
WINNT_CHINESE=(len("例子")=2)
Si WINNT_CHINESE Alors
Faible l,t,c
Faible je
l=len(chaîne)
t = l
Pour i=1 À l
c=asc(milieu(str,i,1))
Si c<0 Alors c=c+65536
Si c>255 Alors t=t+1
Suivant
strLongueur=t
Autre
strLongueur=len(str)
Fin si
Fonction de fin
Fonction publique ChkBadWords(Str)
Si IsNull (Str) alors quittez la fonction
Faible je
Pour i = 0 Vers Ubound (BadWords)
Si je > UBound(rBadWord) Alors
Str = Remplacer(Str,BadWords(i),"*")
Autre
Str = Remplacer (Str, BadWords (i), rBadWord (i))
Fin si
Suivant
ChkBadWords = Str
Fonction de fin
Checkstr de fonction publique (Str)
Si Isnull(Str) Alors
CheckStr = ""
Fonction de sortie
Fin si
CheckStr = Remplacer(Str,"'","''")
Fonction de fin
'取得带端口的URL,推荐使用
Propriété Get Get_ScriptNameUrl()
Si request.servervariables("SERVER_PORT")="80" Alors
Get_ScriptNameUrl="http://" & request.servervariables("server_name")&replace(lcase(request.servervariables("script_name")),ScriptName,"")
Autre
Get_ScriptNameUrl="http://" & request.servervariables("server_name")&":"&request.servervariables("SERVER_PORT")&replace(lcase(request.servervariables("script_name")),ScriptName,"")
Fin si
Fin de la propriété
'检查E-mail地址有效性
fonction IsValidEmail(email)
noms sombres, nom, je, c
IsValidEmail = vrai
noms = Split (e-mail, "@")
si UBound(noms) <> 1 alors
IsValidEmail = faux
fonction de sortie
finir si
pour chaque nom dans les noms
si Len(nom) <= 0 alors
IsValidEmail = faux
fonction de sortie
finir si
pour i = 1 à Len(nom)
c = Lcase(Mid(nom, i, 1))
si InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 et non IsNumeric(c) alors
IsValidEmail = faux
fonction de sortie
finir si
suivant
si Gauche(nom, 1) = "." ou Droite(nom, 1) = "." alors
IsValidEmail = faux
fonction de sortie
finir si
suivant
si InStr(noms(1), ".") <= 0 alors
IsValidEmail = faux
fonction de sortie
finir si
je = Len(noms(1)) - InStrRev(noms(1), ".")
si je <> 2 et je <> 3 alors
IsValidEmail = faux
fonction de sortie
finir si
si InStr(email, "..") > 0 alors
IsValidEmail = faux
fin si
fonction de fin
fonction strLength(str)
EN ERREUR REPRISER SUIVANT
faible WINNT_CHINESE
WINNT_CHINESE = (len("论坛")=2)
si WINNT_CHINESE alors
faible l, t, c
je suis faible
l=len(chaîne)
t = l
pour i=1 à l
c=asc(milieu(str,i,1))
si c<0 alors c=c+65536
si c>255 alors
t=t+1
finir si
suivant
strLongueur=t
autre
strLongueur=len(str)
finir si
si err.number<>0 alors err.clear
fonction de fin
fonction cutStr(str,strlen)
faible l, t, c
l=len(chaîne)
t=0
pour i=1 à l
c=Abs(Asc(Mid(str,i,1)))
si c>255 alors
t=t+2
autre
t=t+1
finir si
si t>=strlen alors
cutStr=gauche(str,i)&"..."
sortie pour
autre
cutStr=str
finir si
suivant
cutStr=remplacer(cutStr,chr(10),"")
fonction de fin
Fonction fixjs(Str)
Si Str <>"" Alors
str = remplacer(str,"", "\")
Str = remplacer (str, chr (34), """")
Str = remplacer(str, chr(39),"'")
Str = Remplacer(str, chr(13), "n")
Str = Remplacer(str, chr(10), "r")
str = remplacer(str,"'", "'")
Fin si
fixjs=Str
Fonction de fin
Fonction enfixjs(Str)
Si Str <>"" Alors
Str = remplacer(str,"'", "'")
Str = remplacer(str,"""" , chr(34))
Str = remplacer (str, "'", chr (39))
Str = Remplacer(str, "r", chr(10))
Str = Remplacer(str, "n", chr(13))
Str = remplacer(str,"\", "")
Fin si
enfixjs=Str
Fonction de fin
Classe Cls_Browser
Navigateur public, version, plateforme
Sous-classe privée_Initialize()
Navigateur = "inconnu"
version="inconnue"
plateforme = "inconnu"
Agent de faible luminosité
Agent=Request.ServerVariables("HTTP_USER_AGENT")
Agent=Split(Agent,";")
Si InStr(Agent(1),"MSIE")>0 Alors
Navigateur="Microsoft Internet Explorer"
version=Trim(Gauche(Remplacer(Agent(1),"MSIE",""),6))
SinonSi InStr(Agent(4),"Netscape")>0 Alors
Navigateur="Netscape"
Dim tmpstr
tmpstr=Split(Agent(4),"/")
version=tmpstr(UBound(tmpstr))
Fin si
Si InStr(Agent(2),"NT 5.2")>0 Alors
plateforme="Windows 2003"
SinonSi InStr(Agent(2),"NT 5.1")>0 Alors
plateforme="Windows XP"
SinonSi InStr(Agent(2),"NT 5.0")>0 Alors
plateforme="Windows 2000"
SinonSi InStr(Agent(2),"9x")>0 Alors
plateforme="Windows ME"
SinonSi InStr(Agent(2),"98")>0 Alors
plateforme="Windows 98"
SinonSi InStr(Agent(2),"95")>0 Alors
plateforme="Windows 95"
Fin si
Agent '记录未知
Si Browser="unknown" ou version="unknown" ou platform="unknown" Alors
Agent=Dvbbs.checkStr(Request.ServerVariables("HTTP_USER_AGENT"))
Dim lConnStr,lConn,ldb
ldb = "données/DvSQLLOG.mdb"
lConnStr = "Provider = Microsoft.Jet.OLEDB.4.0; Source de données = " & Server.MapPath(ldb)
Définir lConn = Server.CreateObject("ADODB.Connection")
lConn.Ouvrir lConnStr
lConn.Execute("insérer dans [Agent](UserAgent)Values('" & Agent & "')")
lConn.Fermer
Définir lConn = Rien
Fin si
Fin du sous-marin
Fin du cours
%>