<%
' 判断提交是否來自外部
Função Pública ChkPost()
Escurecer servidor_v1, servidor_v2
Chkpost=Falso
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
Se Mid(server_v1,8,len(server_v2))=server_v2 Então Chkpost=True
Função final
'系统分配随机密码
Função pública Createpass()
Dim Ran,i,LengthNum
ComprimentoNum=16
Criarpass=""
Para i = 1 para LengthNum
Randomizar
Ran = CInt(Rnd * 2)
Randomizar
Se Ran = 0 Então
Ran = CInt(Rnd * 25) + 97
Createpass =Createpass& UCase(Chr(Ran))
ElseIf Ran = 1 Então
Ran = CInt(Rnd * 9)
Createpass = Criarpass e executar
ElseIf Ran = 2 Então
Ran = CInt(Rnd * 25) + 97
Createpass =Createpass& Chr(Ran)
Terminar se
Próximo
Função final
'Executar
Função Rem
Função Pública Executar (Comando)
Se não for IsObject (Conn), então ConnectionDatabase
'检查权限,防止注入攻击
If InStr(LCase(Command),"dv_admin")>0 And Left(ScriptName,6)<> "admin_" Então
Response.Write SaveSQLLOG(Comando,"")
Command=Substituir(LCase(Command),"dv_admin","dv<i>"&Chr(95)&"</i>admin")
Terminar se
Se IsDeBug = 0 Então
Em caso de erro, retomar o próximo
Definir Executar = Conn.Execute (Comando)
Se errar então
err.Limpar
Definir conexão = nada
Response.Write SaveSQLLOG(Command,"查询数据的时候发现错误,请检查您的查询代码是否正确。<br>基于安全的理由,只显示本信息,要查看详细的错误信息,请修改您的程序文件conn.asp。把""Const IsDeBug = 0""改为:""Const IsDeBug = 1""")
Resposta.Fim
Terminar se
Outro
'Comando Response.Write & "<br>"
Definir Executar = Conn.Execute (Comando)
Terminar se
NumSqlQuery = NumSqlQuery+1
Função final
'记录查询错误事件
Função pública SaveSQLLOG(sCommand,mensagem)
Dim lConnStr,lConn,ldb,SQL,RS
ldb = "dados/DvSQLLOG.mdb"
lConnStr = "Provider = Microsoft.Jet.OLEDB.4.0; Fonte de dados = " & Server.MapPath (ldb)
Definir lConn = Server.CreateObject("ADODB.Connection")
lConn.Open lConnStr
Definir Rs = Server.CreateObject("adodb.recordset")
Sql="selecione * de dv_sql_log"
Rs.open sql,lconn,1,3
Rs.adicionar novo
Rs("NomedoScript")=NomedoScript
Rs("S_Info")=Esquerda(sCommand,255)
Rs("ip")=UserTrueIP
Rs.atualização
Rs.fechar
lConn.Execute(SQL)
lConn.Fechar
Definir lConn = Nada
SalvaSQLLOG = mensagem
Função final
'IP来源
Endereço de função pública (sip)
Dim aConnStr,aConn,adb
Diminuir str1,str2,str3,str4
Dim número
País escuro, cidade
Dim irs, SQL
Se IsNumeric(Left(sip,2)) Então
Se sip="127.0.0.1" Então sip="192.168.0.1"
str1=Esquerda(sip,InStr(sip,".")-1)
gole=mid(gole,instr(gole,".")+1)
str2=Esquerda(sip,instr(sip,".")-1)
gole=Mid(gole,InStr(gole,".")+1)
str3=Esquerda(sip,instr(sip,".")-1)
str4=Médio(gole,instr(gole,".")+1)
Se isNumeric(str1)=0 ou isNumeric(str2)=0 ou isNumeric(str3)=0 ou isNumeric(str4)=0 Então
Outro
num=CLng(str1)*16777216+CLng(str2)*65536+CLng(str3)*256+CLng(str4)-1
adb = "dados/endereçoipad.mdb"
aConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Fonte de dados = " & Server.MapPath(adb)
Definir AConn = Server.CreateObject("ADODB.Connection")
aConn.Open aConnStr
sql = "selecione o primeiro país, cidade de dv_address onde ip1 <="&num&" e ip2 >="&num&""
Definir irs=aConn.execute(sql)
Se irs.EOF e irs.bof Então
país = "亚洲"
cidade=""
Outro
país=irs(0)
cidade=irs(1)
Terminar se
Definir irs=Nada
Definir aConn = Nada
NumSqlQuery = NumSqlQuery+1
Terminar se
endereço = país e cidade
Outro
endereço = "未知"
Terminar se
Função final
'用于用户发布的各种信息过滤,带脏话过滤
Função Pública HTMLEncode(fString)
Se não for nulo (fString) então
fString = substituir(fString, ">", ">")
fString = substituir(fString, "<", "<")
fString = Substituir(fString, CHR(32), " ") '
fString = Substituir(fString, CHR(9), " ") '
fString = Substituir(fString, CHR(34), """)
fString = Replace(fString, CHR(39), "'") '过滤单引号
fString = Substituir(fString, CHR(13), "")
fString = Substituir(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Substituir(fString, CHR(10), "<BR> ")
fString=ChkBadWords(fString)
HTMLEncode=fString
Terminar se
Função final
'用于论坛本身的过滤,不带脏话过滤
Função pública iHTMLEncode(fString)
Se não for nulo (fString) então
fString = substituir(fString, ">", ">")
fString = substituir(fString, "<", "<")
fString = Substituir(fString, CHR(32), " ")
fString = Substituir(fString, CHR(9), " ")
fString = Substituir(fString, CHR(34), """)
fString = Substituir(fString, CHR(39), "'")
fString = Substituir(fString, CHR(13), "")
fString = Substituir(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Substituir(fString, CHR(10), "<BR> ")
iHTMLEncode =fString
Terminar se
Função final
Função pública strLength(str)
Se isNull(str) ou Str = "" Então
Comprimento da Força = 0
Função de saída
Terminar se
Escurecer WINNT_CHINESE
WINNT_CHINESE=(len("例子")=2)
Se WINNT_CHINESE então
Dim l,t,c
Escureça eu
eu=len(str)
t = eu
Para i = 1 para l
c=asc(meio(str,i,1))
Se c<0 Então c=c+65536
Se c>255 Então t=t+1
Próximo
strComprimento=t
Outro
strComprimento=len(str)
Terminar se
Função final
Função Pública ChkBadWords(Str)
Se IsNull (Str) então sai da função
Escureça eu
Para i = 0 para Ubound (BadWords)
Se eu > UBound(rBadWord) Então
Str = Substituir(Str,BadWords(i),"*")
Outro
Str = Substituir(Str,BadWords(i),rBadWord(i))
Terminar se
Próximo
ChkBadWords = Str
Função final
Função Pública Checkstr(Str)
Se for nulo(Str) então
CheckStr = ""
Função de saída
Terminar se
CheckStr = Substituir(Str,"'","''")
Função final
'取得带端口的URL,推荐使用
Propriedade Obter Get_ScriptNameUrl()
Se request.servervariables("SERVER_PORT")="80" Então
Get_ScriptNameUrl="http://" & request.servervariables("server_name")&replace(lcase(request.servervariables("script_name")),ScriptName,"")
Outro
Get_ScriptNameUrl="http://" & request.servervariables("server_name")&":"&request.servervariables("SERVER_PORT")&replace(lcase(request.servervariables("script_name")),ScriptName,"")
Terminar se
Fim da propriedade
'检查Email地址有效性
função IsValidEmail(e-mail)
nomes escuros, nome, i, c
IsValidEmail = verdadeiro
nomes = Dividir(e-mail, "@")
se UBound(nomes) <> 1 então
IsValidEmail = falso
função de saída
terminar se
para cada nome em nomes
se Len(nome) <= 0 então
IsValidEmail = falso
função de saída
terminar se
para i = 1 para Len(nome)
c = Lcase(Mid(nome, i, 1))
se InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 e não IsNumeric(c) então
IsValidEmail = falso
função de saída
terminar se
próximo
if Esquerda(nome, 1) = "." ou Direita(nome, 1) = "." então
IsValidEmail = falso
função de saída
terminar se
próximo
se InStr(nomes(1), ".") <= 0 então
IsValidEmail = falso
função de saída
terminar se
i = Len(nomes(1)) - InStrRev(nomes(1), ".")
se eu <> 2 e eu <> 3 então
IsValidEmail = falso
função de saída
terminar se
se InStr(email, "..") > 0 então
IsValidEmail = falso
fim se
fim
função função strLength(str)
EM ERRO RETOMAR PRÓXIMO
escurecer WINNT_CHINESE
WINNT_CHINESE = (len("论坛")=2)
se WINNT_CHINESE então
escurecer l,t,c
escurecer eu
eu=len(str)
t = eu
para eu = 1 para eu
c=asc(meio(str,i,1))
se c<0 então c=c+65536
se c>255 então
t=t+1
terminar se
próximo
strComprimento=t
outro
strComprimento=len(str)
terminar se
se err.número<>0 então err.clear
função final
função cutStr(str,strlen)
escurecer l,t,c
eu=len(str)
t=0
para eu = 1 para eu
c=Abs(Asc(Médio(str,i,1)))
se c>255 então
t=t+2
outro
t=t+1
terminar se
se t>=strlen então
cutStr=esquerda(str,i)&"..."
saída para
outro
cortarStr=str
terminar se
próximo
cutStr=substituir(cutStr,chr(10),"")
função final
Função fixjs(Str)
Se Str <>"" Então
str = substituir(str,"", "\")
Str = substituir(str, chr(34), """")
Str = substituir(str, chr(39),"'")
Str = Substituir(str, chr(13), "n")
Str = Substituir(str, chr(10), "r")
str = substituir(str,"'", "'")
Terminar se
fixjs=Str
Função final
Função enfixjs(Str)
Se Str <>"" Então
Str = substituir(str,"'", "'")
Str = substituir(str,"""" , chr(34))
Str = substituir(str, "'",chr(39))
Str = Substituir(str, "r", chr(10))
Str = Substituir(str, "n", chr(13))
Str = substituir(str,"\", "")
Terminar se
enfixjs=Str
Função final
Classe Cls_Browser
Navegador público, versão, plataforma
Subclasse Privada_Initialize()
Navegador = "desconhecido"
versão = "desconhecido"
plataforma = "desconhecido"
Agente escuro
Agente=Request.ServerVariables("HTTP_USER_AGENT")
Agente=Dividir(Agente,";")
Se InStr(Agente(1),"MSIE")>0 Então
Navegador = "Microsoft Internet Explorer"
versão=Trim(Left(Replace(Agent(1),"MSIE",""),6))
ElseIf InStr(Agente(4),"Netscape")>0 Então
Navegador = "Netscape"
Escurecer tmpstr
tmpstr=Dividir(Agente(4),"/")
versão=tmpstr(UBound(tmpstr))
Terminar se
Se InStr(Agente(2),"NT 5.2")>0 Então
plataforma = "Windows 2003"
ElseIf InStr(Agente(2),"NT 5.1")>0 Então
plataforma = "Windows XP"
ElseIf InStr(Agente(2),"NT 5.0")>0 Então
plataforma = "Windows 2000"
ElseIf InStr(Agente(2),"9x")>0 Então
plataforma = "Windows ME"
ElseIf InStr(Agente(2),"98")>0 Então
plataforma = "Windows 98"
ElseIf InStr(Agente(2),"95")>0 Então
plataforma = "Windows 95"
Terminar se
'记录未知Agente
Se Browser="unknown" ou version="unknown" ou platform="unknown" Então
Agente=Dvbbs.checkStr(Request.ServerVariables("HTTP_USER_AGENT"))
Dim lConnStr,lConn,ldb
ldb = "dados/DvSQLLOG.mdb"
lConnStr = "Provider = Microsoft.Jet.OLEDB.4.0; Fonte de dados = " & Server.MapPath (ldb)
Definir lConn = Server.CreateObject("ADODB.Connection")
lConn.Open lConnStr
lConn.Execute("inserir em [Agente](UserAgent)Valores('" & Agente & "')")
lConn.Fechar
Definir lConn = Nada
Terminar se
Finalizar sub
Fim da aula
%>