当前位置: 首页 > 图文教程 > 网络安全 > 安全基础 > 网页脚本攻击防范全攻略(2)

安全基础
新手入门:如何查看自己电脑配置
QQ牌类游戏常见问题以及解决方法
Windows记事本制作另类个性的整人签名
公共Wi-Fi网络可能会给电脑用户带来更大的安全威胁
新手入门:优酷视频播放密码不安全
微软对联网站快速制作属于自己的春联
淘宝钓鱼网站节前频繁 两招快速识别钓鱼网站
极虎病毒传播方式、中毒特征和解决方法
反病毒专家建议春节期间上网防病毒办法
快速获取网友的IP地址的4种方法
Windows无法加载本地存储的配置文件
电脑开机运行速度缓慢的软硬件问题分析
打开网上邻居里的电脑要求输入密码怎么办
Cisco路由器用户名和密码忘记怎么办
细数电脑里的一些需要删除的垃圾文件
快速清理右键菜单的一些方法汇总
纯DOS不支持中文显示乱码的3种解决方法
为喜欢的网站制作桌面快捷方式
离开计算机快速启动屏幕保护程序的设置方法
为域用户指定允许其登录的计算机

安全基础 中的 网页脚本攻击防范全攻略(2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-28   浏览: 34 ::
收藏到网摘: n/a

 程序体(1)

  另外,值得我们注意的是,很多站点在用户注册,或者是用户资料修改的页面上也缺少脚本的过滤,或者是只在其中之一进行过滤,注册进入后修改资料仍然可以进行脚本攻击。对用户提交的数据进行检测和过滤,程序体(2) 如下:

  ‘以下是过滤函数

  If Instr(request("username"),"=")>0 or
  Instr(request("username"),"%")>0 or
  Instr(request("username"),chr(32))>0 or
  Instr(request("username"),"?")>0 or
  Instr(request("username"),"&")>0 or
  Instr(request("username"),";")>0 or
  Instr(request("username"),",")>0 or
  Instr(request("username"),"'")>0 or
  Instr(request("username"),"?")>0 or
  Instr(request("username"),chr(34))>0 or
  Instr(request("username"),chr(9))>0 or
  Instr(request("username"),"?K")>0 or
  Instr(request("username"),"$")>0 or
  Instr(request("username"),">")>0 or
  Instr(request("username"),"<")>0 or
  Instr(request("username"),"""")>0 then
  response.write "朋友,你的提交用户名含有非法字符,请更改,谢谢合作 <a href='****:window.history.go(-1);'>返回</a>"
  response.end
  end if

  程序体(2)

  为了提供工作效率我们再将过滤内容程序化,这样对多个参数的过滤效率将有很大程度上的提高:如

  程序体(3)

  ‘以下为程序主体

  dim Bword(18)
  Bword(0)="?"
  Bword(1)=";"
  Bword(2)=">"
  Bword(3)="<"
  Bword(4)="-"
  Bword(5)="’"
  Bword(6)="””"
  Bword(7)="&"
  Bword(8)="%"
  Bword(9)="$"
  Bword(10)="'"
  Bword(11)=":"
  Bword(12)=" "
  Bword(13)="("
  Bword(14)=")"
  Bword(15)="--"
  Bword(16)=" chr(9)"
  Bword(17)=" chr(34)"
  Bword(18)=" chr(32)"
  errc=false

  ‘以下是应用实例部分

  for i= 0 to ubound(Bword)
  if instr(FQYs,Bword(i))<>0 then
  errc=true
  end if
  next
  if errc then
  response.write "<script language=""****"">"
  response.write "parent.alert('很抱歉!您的操作违法了);"
  response.write "history,back();"
  response.write "</script>"
  response.end
  end if