无限星辰工作室-客户无限互联网动力之源

标题: Asp防跨站防护代码(XSS防护) [打印本页]

作者: crx349    时间: 2020-5-6 23:28
标题: Asp防跨站防护代码(XSS防护)
工作需要,用到了ASP,需要一个防护,百度找了下,测试没问题,分享下
保存为:safe.asp 放网站根目录
  1. <%   
  2. On Error Resume Next  
  3. if request.querystring<>"" then call stophacker(request.querystring,"'|\b(alert|confirm|prompt)\b|<[^>]*?>|^\+/v(8|9)|\bonmouse(over|move)=\b|\b(and|or)\b.+?(>|<|=|\bin\b|\blike\b)|/\*.+?\*/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)")  
  4. if Request.ServerVariables("HTTP_REFERER")<>"" then call test(Request.ServerVariables("HTTP_REFERER"),"'|\b(and|or)\b.+?(>|<|=|\bin\b|\blike\b)|/\*.+?\*/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)")  
  5. if request.Cookies<>"" then call stophacker(request.Cookies,"\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|/\*.+?\*/|<\s*script\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)")   
  6. call stophacker(request.Form,"^\+/v(8|9)|\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|/\*.+?\*/|<\s*script\b|<\s*img\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)")  

  7. function test(values,re)  
  8.         dim regex  
  9.         set regex=new regexp  
  10.         regex.ignorecase = true  
  11.         regex.global = true  
  12.         regex.pattern = re  
  13.         if regex.test(values) then  
  14.                 Response.Write("<div style='position:fixed;top:0px;width:100%;height:100%;background-color:white;color:green;font-weight:bold;border-bottom:5px solid #999;'><br>您的提交带有不合法参数,谢谢合作!<br><br></div>")  
  15.                 Response.end  
  16.         end if  
  17.         set regex = nothing  
  18. end function   


  19. function stophacker(values,re)  
  20.         dim l_get, l_get2,n_get,regex,IP  
  21.         for each n_get in values  
  22.                 for each l_get in values  
  23.                         l_get2 = values(l_get)  
  24.                         set regex = new regexp  
  25.                         regex.ignorecase = true  
  26.                         regex.global = true  
  27.                         regex.pattern = re  
  28.                         if regex.test(l_get2) then  
  29.                                 Response.Write("<div style='position:fixed;top:0px;width:100%;height:100%;background-color:white;color:green;font-weight:bold;border-bottom:5px solid #999;'><br>您的提交带有不合法参数,谢谢合作!<br><br></div>")  
  30.                                 Response.end  
  31.                         end if  
  32.                         set regex = nothing  
  33.                 next  
  34.         next  
  35. end function   
  36. %>
复制代码


用法:
  1. <!--#include virtual="/safe.asp"-->
复制代码

以上代码放conn.asp之类的公用文件里面




欢迎光临 无限星辰工作室-客户无限互联网动力之源 (https://xmspace.net/) Powered by Discuz! X3.4