<%
' 判断提交是否來自外部
Función pública ChkPost()
Servidor tenue_v1, servidor_v2
Chkpost=Falso
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
Si Mid(server_v1,8,len(server_v2))=server_v2 Entonces Chkpost=True
Función final
'系统分配随机密码
Función pública Createpass()
Dim Ran,i,NúmLongitud
NúmLongitud=16
Crearcontraseña=""
Para i=1 a NúmLongitud
Aleatorizar
Corrió = CInt(Rnd * 2)
Aleatorizar
Si corrió = 0 entonces
Corrió = CInt(Rnd * 25) + 97
Createpass =Createpass& UCase(Chr(Ran))
De lo contrario, si corrió = 1, entonces
Corrió = CInt(Rnd * 9)
Createpass = Createpass y corrió
De lo contrario, si corrió = 2, entonces
Corrió = CInt(Rnd * 25) + 97
Createpass =Createpass& Chr(Ejecutó)
Terminar si
Próximo
Función final
'重写ejecutar
Función Rem
Ejecución de función pública (comando)
Si no es IsObject (Conn), entonces ConnectionDatabase
'检查权限,防止注入攻击
Si InStr(LCase(Command),"dv_admin")>0 y Left(ScriptName,6)<> "admin_" Entonces
Respuesta.Escribir SaveSQLLOG(Comando,"")
Comando=Reemplazar(LCase(Comando),"dv_admin","dv<i>"&Chr(95)&"</i>admin")
Terminar si
Si IsDeBug = 0 Entonces
En caso de error Continuar siguiente
Establecer Ejecutar = Conn.Execute(Comando)
Si se equivoca entonces
errar.Borrar
Establecer conexión = nada
Respuesta.Escribir SaveSQLLOG(Command,"查询数据的时候发现错误,请检查您的查询代码是否正确。<br>基于安全的理由,只显示本信息,要查看详细的错误信息,请修改您的程序文件conn.asp。把""Const IsDeBug = 0""改为:""Const IsDeBug = 1""")
Respuesta.Fin
Terminar si
Demás
'Respuesta.Escribir comando & "<br>"
Establecer Ejecutar = Conn.Execute(Comando)
Terminar si
NúmConsulta Sql = NúmConsulta Sql+1
Función final
'记录查询错误事件
Función pública SaveSQLLOG(sCommand,mensaje)
Dim lConnStr,lConn,ldb,SQL,RS
ldb = "datos/DvSQLLOG.mdb"
lConnStr = "Proveedor = Microsoft.Jet.OLEDB.4.0; Fuente de datos = " & Server.MapPath(ldb)
Establecer lConn = Server.CreateObject("ADODB.Connection")
lConn.Abrir lConnStr
Establecer Rs = Server.CreateObject ("adodb.recordset")
Sql="seleccione * de dv_sql_log"
Rs.open sql,lconn,1,3
Rs.añadir nuevo
Rs("Nombre del script")=Nombre del script
Rs("S_Info")=Izquierda(sCommand,255)
Rs("ip")=UsuarioTrueIP
Rs.actualización
Rs.cerrar
lConn.Ejecutar(SQL)
lConn.Cerrar
Establecer lConn = Nada
GuardarSQLLOG = mensaje
Función final
'IP来源
Dirección de función pública (sip)
Atenuar aConnStr,aConn,adb
Atenuar str1, str2, str3, str4
número tenue
País oscuro, ciudad
irs tenue, SQL
Si es numérico (izquierda (sip, 2)) entonces
Si sip="127.0.0.1" Entonces sip="192.168.0.1"
str1=Izquierda(sorbo,InStr(sorbo,".")-1)
sorbo=medio(sorbo,instr(sorbo,".")+1)
str2=Izquierda(sorbo,instr(sorbo,".")-1)
sorbo=Medio(sorbo,InStr(sorbo,".")+1)
str3=Izquierda(sorbo,instr(sorbo,".")-1)
str4=Medio(sorbo,instr(sorbo,".")+1)
Si isNumeric(str1)=0 o isNumeric(str2)=0 o isNumeric(str3)=0 o isNumeric(str4)=0 Entonces
Demás
número=CLng(cadena1)*16777216+CLng(cadena2)*65536+CLng(cadena3)*256+CLng(cadena4)-1
adb = "datos/direcciónip.mdb"
aConnStr = "Proveedor = Microsoft.Jet.OLEDB.4.0; Fuente de datos = " & Server.MapPath(adb)
Establecer AConn = Server.CreateObject ("ADODB.Connection")
aConn.Open aConnStr
sql="seleccione el 1 país principal, ciudad de dv_address donde ip1 <="&num&" e ip2 >="&num&""
Establecer irs=aConn.execute(sql)
Si irs.EOF e irs.bof Entonces
país="亚洲"
ciudad=""
Demás
país=ir(0)
ciudad=irs(1)
Terminar si
Establecer irs=Nada
Establecer una conexión = nada
NúmConsulta Sql = NúmConsulta Sql+1
Terminar si
dirección=país&ciudad
Demás
dirección="未知"
Terminar si
Función final
'用于用户发布的各种信息过滤,带脏话过滤
Función pública HTMLEncode (fString)
Si no es nulo (fString) entonces
fString = reemplazar(fString, ">", ">")
fString = reemplazar(fString, "<", "<")
fString = Reemplazar(fString, CHR(32), " ") '
fString = Reemplazar(fString, CHR(9), " ") '
fString = Reemplazar(fString, CHR(34), """)
fString = Reemplazar(fString, CHR(39), "'") '过滤单引号
fString = Reemplazar(fString, CHR(13), "")
fString = Reemplazar(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Reemplazar(fString, CHR(10), "<BR> ")
fString=ChkMalasPalabras(fString)
HTMLEncode = fString
Terminar si
Función final
'用于论坛本身的过滤,不带脏话过滤
Función pública iHTMLEncode (fString)
Si no es nulo (fString) entonces
fString = reemplazar(fString, ">", ">")
fString = reemplazar(fString, "<", "<")
fString = Reemplazar(fString, CHR(32), " ")
fString = Reemplazar(fString, CHR(9), " ")
fString = Reemplazar(fString, CHR(34), """)
fString = Reemplazar(fString, CHR(39), "'")
fString = Reemplazar(fString, CHR(13), "")
fString = Reemplazar(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Reemplazar(fString, CHR(10), "<BR> ")
iHTMLEncode = fString
Terminar si
Función final
Función pública strLength(str)
Si esNull(str) o Str = "" Entonces
Longitud de cadena = 0
Función de salida
Terminar si
Atenuado WINNT_CHINESE
WINNT_CHINESE=(len("例子")=2)
Si WINNT_CHINESE Entonces
tenue l,t,c
Yo tenue
l=len(cadena)
t=l
Para i=1 a l
c=asc(medio(cadena,i,1))
Si c<0 Entonces c=c+65536
Si c>255 Entonces t=t+1
Próximo
strLongitud=t
Demás
strLongitud=len(cadena)
Terminar si
Función final
Función pública ChkBadWords(Str)
Si IsNull(Str) entonces salga de la función
Yo tenue
Para i = 0 a Ubound (BadWords)
Si i > UBound(rBadWord) Entonces
Str = Reemplazar(Str,BadWords(i),"*")
Demás
Str = Reemplazar(Str,PalabrasMalas(i),rPalabraMala(i))
Terminar si
Próximo
ChkBadWords = Cadena
Función final
Función pública Checkstr(Str)
Si es nulo (Str) entonces
CheckStr = ""
Función de salida
Terminar si
CheckStr = Reemplazar(Str,"'","''")
Función final
'取得带端口的URL,推荐使用
Propiedad Obtener Get_ScriptNameUrl()
Si request.servervariables("SERVER_PORT")="80" Entonces
Get_ScriptNameUrl="http://" & request.servervariables("server_name")&replace(lcase(request.servervariables("script_name")),ScriptName,"")
Demás
Get_ScriptNameUrl="http://" & request.servervariables("server_name")&":"&request.servervariables("SERVER_PORT")&replace(lcase(request.servervariables("script_name")),ScriptName,"")
Terminar si
Propiedad final
'检查Correo electrónico地址有效性
función IsValidEmail(correo electrónico)
nombres oscuros, nombre, i, c
IsValidEmail = verdadero
nombres = Dividir(correo electrónico, "@")
si UBound(nombres) <> 1 entonces
IsValidEmail = falso
función de salida
terminar si
para cada nombre en nombres
si Len(nombre) <= 0 entonces
IsValidEmail = falso
función de salida
terminar si
para i = 1 a Len(nombre)
c = Lcase(Mid(nombre, i, 1))
si InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 y no IsNumeric(c) entonces
IsValidEmail = falso
función de salida
terminar si
próximo
si Izquierda(nombre, 1) = "." o Derecha(nombre, 1) = "." entonces
IsValidEmail = falso
función de salida
terminar si
próximo
si InStr(nombres(1), ".") <= 0 entonces
IsValidEmail = falso
función de salida
terminar si
i = Len(nombres(1)) - InStrRev(nombres(1), ".")
si i <> 2 y i <> 3 entonces
IsValidEmail = falso
función de salida
terminar si
si InStr(correo electrónico, "..") > 0 entonces
IsValidEmail = falso
finalizar si
función final
función strLength(str)
EN ERROR REANUDAR SIGUIENTE
tenue WINNT_CHINESE
WINNT_CHINESE = (len("论坛")=2)
si WINNT_CHINESE entonces
tenue l,t,c
oscuro yo
l=len(cadena)
t=l
para i=1 a l
c=asc(medio(cadena,i,1))
si c<0 entonces c=c+65536
si c>255 entonces
t=t+1
terminar si
próximo
strLongitud=t
demás
strLongitud=len(cadena)
terminar si
si err.number<>0 entonces err.clear
función final
función cutStr(str,strlen)
tenue l,t,c
l=len(cadena)
t=0
para i=1 a l
c=Abs(Asc(Medio(str,i,1)))
si c>255 entonces
t=t+2
demás
t=t+1
terminar si
si t>=strelen entonces
cutStr=izquierda(cadena,i)&"..."
salida para
demás
cortarcadena=cadena
terminar si
próximo
cutStr=reemplazar(cutStr,chr(10),"")
función final
Función fixjs(Str)
Si Str <>"" Entonces
cadena = reemplazar(cadena,"", "\")
Cadena = reemplazar(cadena, chr(34), """")
Cadena = reemplazar(cadena, chr(39),"'")
Cadena = Reemplazar(cadena, chr(13), "n")
Cadena = Reemplazar(cadena, chr(10), "r")
cadena = reemplazar(cadena,"'", "'")
Terminar si
fixjs=Str
Función final
Función enfixjs(Str)
Si Str <>"" Entonces
Cadena = reemplazar(cadena,"'", "'")
Cadena = reemplazar(cadena,"""", chr(34))
Cadena = reemplazar(cadena, "'",chr(39))
Cadena = Reemplazar(cadena, "r", chr(10))
Cadena = Reemplazar(cadena, "n", chr(13))
Cadena = reemplazar(cadena,"\", "")
Terminar si
enfixjs=Str
Función final
Clase Cls_Browser
Navegador público, versión, plataforma.
Subclase privada_Initialize()
Navegador="desconocido"
versión="desconocida"
plataforma="desconocida"
Agente oscuro
Agente=Request.ServerVariables("HTTP_USER_AGENT")
Agente=Dividir(Agente,";")
Si InStr(Agente(1),"MSIE")>0 Entonces
Navegador="Microsoft Internet Explorer"
versión=Recortar(Izquierda(Reemplazar(Agente(1),"MSIE",""),6))
ElseIf InStr(Agent(4),"Netscape")>0 Entonces
Navegador="Netscape"
tmpstr tenue
tmpstr=Dividir(Agente(4),"/")
versión=tmpstr(UBound(tmpstr))
Terminar si
Si InStr(Agente(2),"NT 5.2")>0 Entonces
plataforma="Windows 2003"
ElseIf InStr(Agente(2),"NT 5.1")>0 Entonces
plataforma="Windows XP"
ElseIf InStr(Agente(2),"NT 5.0")>0 Entonces
plataforma="Windows 2000"
De lo contrario, si InStr(Agente(2),"9x")>0, entonces
plataforma = "Windows ME"
ElseIf InStr(Agent(2),"98")>0 Entonces
plataforma="Windows 98"
ElseIf InStr(Agente(2),"95")>0 Entonces
plataforma="Windows 95"
Terminar si
'记录未知Agente
Si Navegador="desconocido" o versión="desconocido" o plataforma="desconocido" Entonces
Agente=Dvbbs.checkStr(Request.ServerVariables("HTTP_USER_AGENT"))
Dim lConnStr,lConn,ldb
ldb = "datos/DvSQLLOG.mdb"
lConnStr = "Proveedor = Microsoft.Jet.OLEDB.4.0; Fuente de datos = " & Server.MapPath(ldb)
Establecer lConn = Server.CreateObject("ADODB.Connection")
lConn.Abrir lConnStr
lConn.Execute("insertar en [Agente](UserAgent)Values('" & Agente & "')")
lConn.Cerrar
Establecer lConn = Nada
Terminar si
Subtítulo final
Clase final
%>