程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP基礎知識 >> ASP過濾非法字符

ASP過濾非法字符

編輯:ASP基礎知識

ASP過濾非法字符

<%
function changechr(str)
changechr=replace(replace(replace(replace(str,"<","&lt;"),">","&gt;"),chr(13),"<br>")," ","&nbsp;")
changechr=replace(replace(replace(replace(changechr,"[sayyes]","<div align=center><img src="),"[b]","<b>"),"[red]","<font color=CC0000>"),"[big]","<font size=7>")
changechr=replace(replace(replace(replace(changechr,"[/sayyes]","></img></div>"),"[/b]","</b>"),"[/red]","</font>"),"[/big]","</font>")
end function

'過濾SQL非法字符並格式化html代碼
function Replace_Text(fString)
if isnull(fString) then
Replace_Text=""
exit function
else
fString=trim(fString)
fString=replace(fString,"'","''")
fString=replace(fString,";",";")
fString=replace(fString,"--","—")
fString=server.htmlencode(fString)
Replace_Text=fString
end if
end function

'會員發布的各種信息過濾
'Function Replace_Text(fString)
'If Not IsNull(fString) Then
'fString = trim(fString)
'fString = replace(fString, ";", ";")      '分號過濾
'fString = replace(fString, "--", "——") '--過濾
'fString = replace(fString, "%20", "")     '特殊字符過濾
'fString = replace(fString, "==", "")      '==過濾
'fString = replace(fString, ">", "&gt;")
'fString = replace(fString, "<", "&lt;")
'fString = Replace(fString, CHR(32), " ")    '空格;
'fString = Replace(fString, CHR(9), " ")     'Horizontal Tab;
'fString = Replace(fString, CHR(34), "&quot;")'雙引號
'fString = Replace(fString, CHR(39), "&#39;") '單引號過濾
'fString = Replace(fString, CHR(13), "") '回車
'fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ")
'fString = Replace(fString, CHR(10), "<BR> ")
'Replace_Text = fString
'End If
'End Function

'過濾SQL非法字符
Function checkStr(Chkstr)
dim Str:Str=Chkstr
if isnull(Str) then
    checkStr = ""
    exit Function
else
    Str=replace(Str,"'","")
    Str=replace(Str,";","")
    Str=replace(Str,"--","")
    checkStr=Str
end if
End Function

'檢測傳遞的參數是否為數字型
Function Chkrequest(Para)
Chkrequest=False
If Not (IsNull(Para) Or Trim(Para)="" Or Not IsNumeric(Para)) Then
     Chkrequest=True
End If
End Function

'檢測傳遞的參數是否為日期型
Function Chkrequestdate(Para)
Chkrequestdate=False
If Not (IsNull(Para) Or Trim(Para)="" Or Not IsDate(Para)) Then
     Chkrequestdate=True
End If
End Function

'得到當前頁面的地址
Function GetUrl()
On Error Resume Next
Dim strTemp
If LCase(Request.ServerVariables("HTTPS")) = "off" Then
strTemp = "http://"
Else
strTemp = "https://"
End If
strTemp = strTemp & CheckStr(Request.ServerVariables("SERVER_NAME"))
If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & CheckStr(Request.ServerVariables("SERVER_PORT"))
strTemp = strTemp & CheckStr(Request.ServerVariables("URL"))
If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & CheckStr(Trim(Request.QueryString))
GetUrl = strTemp  
End Function

'Function CheckReferer()    '檢查用戶是否在浏覽器裡輸入了本頁的地址
'      Dim sReferer, Icheck
'      CheckReferer = True
'      sReferer = Request.ServerVariables("HTTP_REFERER")
'      ServerIP = Request.ServerVariables("LOCAL_ADDR")
'      Icheck = InStr(sReferer, "ServerIP")
'      If Icheck = 0 Then
'      CheckReferer = False
'      End If
'End Function

'日期格式化
Function FormatDate(DT,tp)
dim Y,M,D
Y=Year(DT)
M=month(DT)
D=Day(DT)
if M<10 then M="0"&M
if D<10 then D="0"&D
select case tp
case 1 FormatDate=Y&"年"&M&"月"&D&"日"
case 2 FormatDate=Y&"-"&M&"-"&D
end select
End Function

'不允許外部提交數據的選擇
Function ChkPost()
      dim HTTP_REFERER,SERVER_NAME
dim server_v1,server_v2
chkpost=false
      SERVER_NAME=CheckStr(Request.ServerVariables("SERVER_NAME"))
HTTP_REFERER=CheckStr(Request.ServerVariables("HTTP_REFERER"))
server_v1=Cstr(HTTP_REFERER)
server_v2=Cstr(SERVER_NAME)
if mid(server_v1,8,len(server_v2))<>server_v2 then
    chkpost=false
else
    chkpost=true
end if
End Function

'構造上傳圖片文件名隨機數
function MakedownName()
dim fname
fname = now()
fname = replace(fname,"-","")
fname = replace(fname," ","")
fname = replace(fname,":","")
fname = replace(fname,"PM","")
fname = replace(fname,"AM","")
fname = replace(fname,"上午","")
fname = replace(fname,"下午","")
fname = int(fname) + int((10-1+1)*Rnd + 1)
MakedownName=fname
end function

'Email檢測
function IsValidEmail(email)
dim names, name, i, c
IsValidEmail = true
names = Split(email, "@")
if UBound(names) <> 1 then
     IsValidEmail = false
     exit function
end if
for each name in names
     if Len(name) <= 0 then
       IsValidEmail = false
       exit function
     end if
     for i = 1 to Len(name)
       c = Lcase(Mid(name, i, 1))
       if InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 and not IsNumeric(c) then
         IsValidEmail = false
         exit function
       end if
     next
     if Left(name, 1) = "." or Right(name, 1) = "." then
        IsValidEmail = false
        exit function
     end if
next
if InStr(names(1), ".") <= 0 then
     IsValidEmail = false
     exit function
end if
i = Len(names(1)) - InStrRev(names(1), ".")
if i <> 2 and i <> 3 then
     IsValidEmail = false
     exit function
end if
if InStr(email, "..") > 0 then
     IsValidEmail = false
end if
end function

'Jmail郵件發送
Function SendJmail(Email,Topic,MailBody)

Dim JMail
on error resume next
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.LazySend              = true
JMail.silent              = true
JMail.Charset              = "gb2312"
JMail.ContentType        = "text/html"
JMail.Sender              = "
**@52itbc.com" '我們網站自己的郵箱
JMail.ReplyTo              = "
**@52itbc.com" '我們網站自己的郵箱
JMail.SenderName        = "**郵件發送"
JMail.Subject              = Topic
JMail.SimpleLayout        = true
JMail.Body              = MailBody
JMail.Priority              = 3
JMail.AddRecipient Email
JMail.AddHeader "Originating-IP", GBL_IPAddress
If JMail.Execute() = false Then
    SendJmail = 0
Else
    SendJmail = 1
End If
JMail.Close
Set JMail = Nothing

End Function

 

 

'分頁
Function listPages(LinkFile)
     if not (rs.eof and rs.bof) then
gopage=currentpage
totalpage=n
blockPage=Int((gopage-1)/10)*10+1
' if instr(linkfile,"?page=")>0 or instr(linkfile,"&page=")>0 then
' pos=instr(linkfile,"page=")-2
' linkfile=left(linkfile,pos)
' end if

If LCase(Request.ServerVariables("HTTPS")) = "off" Then
      strTemp = "http://"
      Else
      strTemp = "https://"
      End If
      strTemp = strTemp & CheckStr(Request.ServerVariables("SERVER_NAME"))
      If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & CheckStr(Request.ServerVariables("SERVER_PORT"))
      strTemp = strTemp & CheckStr(Request.ServerVariables("URL"))
      lenstrTemp=len(strTemp)+1
if instr(left(linkfile,lenstrTemp),"?")>0 then

if blockPage = 1 Then
    Response.Write "<span disabled>【←前10頁</span>&nbsp;"
Else
    Response.Write("<span disabled>【</span><a href=" & LinkFile & "&page="&blockPage-10&">←前10頁</a>&nbsp;")
End If
     i=1
     Do Until i > 10 or blockPage > n
      If blockPage=int(gopage) Then
    Response.Write("<font color=#FF0000>[<b>"&blockPage&"</b>]</font>")
Else
    Response.Write(" <a href=" & LinkFile & "&page="&blockPage&">["&blockPage&"]</a> ")
      End If
      blockPage=blockPage+1
      i = i + 1
      Loop
if blockPage > totalpage Then
    Response.Write "&nbsp;<span disabled>後10頁→】"
Else
    Response.Write("&nbsp;<a href=" & LinkFile & "&page="&blockPage&">後10頁→</a><span disabled>】")
End If
response.write" 直接到第 "
response.write"<select onchange=if(this.options[this.selectedIndex].value!=''){location=this.options[this.selectedIndex].value;}>"
      for i=1 to totalpage
      response.write"<option value='" & LinkFile & "&page=" & i & "'"
      if i=gopage then response.write"selected"
      response.write">"&i&"</option>"
      next
      response.write"</select>"
      response.write" 頁<Br><Br>"

else

if blockPage = 1 Then
    Response.Write "<span disabled>【←前10頁</span>&nbsp;"
Else
    Response.Write("<span disabled>【</span><a href=" & LinkFile & "?page="&blockPage-10&">←前10頁</a>&nbsp;")
End If
     i=1
     Do Until i > 10 or blockPage > n
      If blockPage=int(gopage) Then
    Response.Write("<font color=#FF0000>[<b>"&blockPage&"</b>]</font>")
Else
    Response.Write(" <a href=" & LinkFile & "?page="&blockPage&">["&blockPage&"]</a> ")
      End If
      blockPage=blockPage+1
      i = i + 1
      Loop
if blockPage > totalpage Then
    Response.Write "&nbsp;<span disabled>後10頁→】"
Else
    Response.Write("&nbsp;<a href=" & LinkFile & "?page="&blockPage&">後10頁→</a><span disabled>】")
End If
response.write" 直接到第 "
response.write"<select onchange=if(this.options[this.selectedIndex].value!=''){location=this.options[this.selectedIndex].value;}>"
      for i=1 to totalpage
      response.write"<option value='" & LinkFile & "?page=" & i & "'"
      if i=gopage then response.write"selected"
      response.write">"&i&"</option>"
      next
      response.write"</select>"
      response.write" 頁<Br><Br>"

End If

Startinfo=((gopage-1)*msg_per_page)+1
Endinfo=gopage*msg_per_page
if Endinfo>totalrec then Endinfo=totalrec
    Response.Write("&nbsp;&nbsp;共 "&totalrec&" 條信息 當前顯示第 "&Startinfo&" - "&Endinfo&" 條 每頁 "&msg_per_page&" 條信息 共 "&n&" 頁")
end if
End Function

'分頁2
Function listPages2(LinkFile)
     if not (rs.eof and rs.bof) then
gopage=currentpage
totalpage=n
blockPage=Int((gopage-1)/10)*10+1

If LCase(Request.ServerVariables("HTTPS")) = "off" Then
      strTemp = "http://"
      Else
      strTemp = "https://"
      End If
      strTemp = strTemp & CheckStr(Request.ServerVariables("SERVER_NAME"))
      If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & CheckStr(Request.ServerVariables("SERVER_PORT"))
      strTemp = strTemp & CheckStr(Request.ServerVariables("URL"))
      lenstrTemp=len(strTemp)+1
if instr(left(linkfile,lenstrTemp),"?")>0 then

if blockPage = 1 Then
    Response.Write "<span disabled>前10頁</span>&nbsp;"
Else
    Response.Write("<a href=" & LinkFile & "&page="&blockPage-10&">前10頁</a>&nbsp;")
End If
     i=1
     Do Until i > 10 or blockPage > n
      If blockPage=int(gopage) Then
    Response.Write("<font color=#FF0000><b>"&blockPage&"</b></font>")
Else
    Response.Write(" <a href=" & LinkFile & "&page="&blockPage&">"&blockPage&"</a> ")
      End If
      blockPage=blockPage+1
      i = i + 1
      Loop
if blockPage > totalpage Then
    Response.Write "&nbsp;<span disabled>後10頁"
Else
    Response.Write("&nbsp;<a href=" & LinkFile & "&page="&blockPage&">後10頁</a><span disabled>")
End If
response.write" 直接到第 "
response.write"<select onchange=if(this.options[this.selectedIndex].value!=''){location=this.options[this.selectedIndex].value;}>"
      for i=1 to totalpage
      response.write"<option value='" & LinkFile & "&page=" & i & "'"
      if i=gopage then response.write"selected"
      response.write">"&i&"</option>"
      next
      response.write"</select>"
      response.write" 頁<Br><Br>"

else

if blockPage = 1 Then
    Response.Write "<span disabled>【←前10頁</span>&nbsp;"
Else
    Response.Write("<span disabled>【</span><a href=" & LinkFile & "?page="&blockPage-10&">←前10頁</a>&nbsp;")
End If
     i=1
     Do Until i > 10 or blockPage > n
      If blockPage=int(gopage) Then
    Response.Write("<font color=#FF0000>[<b>"&blockPage&"</b>]</font>")
Else
    Response.Write(" <a href=" & LinkFile & "?page="&blockPage&">["&blockPage&"]</a> ")
      End If
      blockPage=blockPage+1
      i = i + 1
      Loop
if blockPage > totalpage Then
    Response.Write "&nbsp;<span disabled>後10頁→】"
Else
    Response.Write("&nbsp;<a href=" & LinkFile & "?page="&blockPage&">後10頁→</a><span disabled>】")
End If
response.write" 直接到第 "
response.write"<select onchange=if(this.options[this.selectedIndex].value!=''){location=this.options[this.selectedIndex].value;}>"
      for i=1 to totalpage
      response.write"<option value='" & LinkFile & "?page=" & i & "'"
      if i=gopage then response.write"selected"
      response.write">"&i&"</option>"
      next
      response.write"</select>"
      response.write" 頁<Br><Br>"

End If

Startinfo=((gopage-1)*msg_per_page)+1
Endinfo=gopage*msg_per_page
if Endinfo>totalrec then Endinfo=totalrec
    Response.Write("&nbsp;&nbsp;共 "&totalrec&" 條信息 當前顯示第 "&Startinfo&" - "&Endinfo&" 條 每頁 "&msg_per_page&" 條信息 共 "&n&" 頁")
end if
End Function

'判斷文件類型是否合格
Function CheckFileExt(FileExt)
Dim ForumUpload,i
ForumUpload="gif,jpg,bmp,jpeg,png"
ForumUpload=Split(ForumUpload,",")
CheckFileExt=False
For i=0 to UBound(ForumUpload)
    If LCase(FileExt)=Lcase(Trim(ForumUpload(i))) Then
     CheckFileExt=True
     Exit Function
    End If
Next
End Function
'格式後綴
Function FixName(UpFileExt)
If IsEmpty(UpFileExt) Then Exit Function
FixName = Lcase(UpFileExt)
FixName = Replace(FixName,Chr(0),"")
FixName = Replace(FixName,".","")
FixName = Replace(FixName,"asp","")
FixName = Replace(FixName,"asa","")
FixName = Replace(FixName,"aspx","")
FixName = Replace(FixName,"cer","")
FixName = Replace(FixName,"cdx","")
FixName = Replace(FixName,"htr","")
End Function
'文件Content-Type判斷
Function CheckFileType(FileType)
CheckFileType = False
If Left(Cstr(Lcase(Trim(FileType))),6)="image/" Then CheckFileType = True
End Function
%>

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved