一、含义

  XSS(Cross Site Scripting,跨站脚本攻击)最普遍的Web安全漏洞,原因由于Web应用程序对用户的输入过滤不足,导致攻击者可以嵌入恶意脚本代码到正常用户访问的页面中,当正常用户访问时恶意代码便会执行。为了不和CSS混淆,改名为XSS。

二、漏洞普遍原因

  • web浏览器本身不安全,默认的执行和解析JS等脚本语言,不会判断数据和程序代码是否恶意;
  • 如今的站点多存在输入输出,动态的交互便扩大了攻击范围;
  • 团队合作开发使得应用程序健强性不稳定;(程序员水平参差不齐)
  • 未意识到XSS漏洞危害,很多企业不像在安全上花费更多的成本;
  • 攻击手段多、攻击范围广、攻击要求低、攻击方式花

三、XSS分类

3.1 反射型XSS

3.1.1 含义

  反射型XSS(Reflected Cross-site Scripting)非持久型跨站脚本,诱使用户去点击一个包含恶意代码的URL,当受害者点时恶意JS代码便会直接在受害者主机运行。

3.1.2 特点

  • 恶意代码暴露在URL中
  • 需用户单击触发
  • 每个脚本只执行一次
  • 攻击成本高(用户不会轻易点击外来链接)

3.2 存储型XSS

3.2.1 含义

  存储型XSS(Stored Cross-site Scripting)恶意攻击者插入的代码在客户端或数据库中,当用户浏览站点时,站点便加载出之前插入的恶意代码并执行,多存储在登录、个人信息、订单信息、意见反馈、评论留言等用户可输入的地方。

3.2.2 特点

  • 比反射危害大
  • 插入一次执行多次

3.3 DOM型XSS

3.3.1 含义

  DOM型XSS(DOM-base XSS)基于文档对象模型的一种漏洞,参数通过url传递,不会像反射型和存储型XSS与数据库交互(实现过程在前台)反射型的一种。
XSS漏洞入门介绍

3.3.2 特点

  • 基于DOM
  • 无数据库交互
  • 前台

四、XSS危害

  • 窃取Cookie,进行越权敏感操作;
  • 网络钓鱼,盗取各类账号;
  • 劫持会话(非法转账、强制发表文章)
  • 强制弹广告、SEO恶意运营、刷流量;
  • 客户端攻击(获取客户端敏感信息、DDOS)
  • 蠕虫传播
  • 网页挂马……

五、XSS防御

  • 使用HttpOnly(在浏览器的document对象中看不到cookie了,而浏览器浏览时不受影响);
  • 对输入和URL参数进行过滤:
    • 白名单:限制输入内容,如只能输入数字和字符其它输入都是非法;
    • 黑名单:列出不能使用的对象清单,如< > /等
  • 对输出进行编码、转义(按照输出的环境对动态输出的内容进行编码和转义)
    • < 转成 &lt;
    • > 转成 &gt;
    • ’ 转成 &#39;
    • " 转成 &quot;

相关文章: