2rever的前端小站

xss攻击解释及防御

Word count: 369 / Reading time: 1 min
2019/04/01 Share

xss攻击

  • XSS攻击全称跨站脚本攻击

反射型

  • 发出请求时,XSS代码出现在url上,作为输入提交到服务器端,服务器端解析响应后,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫反射型XSS。
  • 通过诱导链接等手段在url上拼接一段脚本,这段脚本可能是
    1
    2
    3
    4
    5
    6
    7
    8
    自动执行
    <img src="null" onerror="xxx" alt="">

    触发执行
    <p onclick="xxx"></p>

    内嵌入广告、攻击页面、csrf引诱页面等
    <iframe src="xxx" frameborder="0"></iframe>

存储型

  • 存储型XSS 和 反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库、内存、文件系统等),下次请求目标页面时用再提交XSS代码。

防范XSS的防御措施

编码

  • 对用户输入的数据进行HTML Entity编码

过滤

  • 移除用户上传的DOM属性,如onerror等
  • 移除用户上传的Style节点(破坏页面样式),Script节点(权限做任何事情),Iframe(连环触发csrf攻击)节点等

校正

  • 避免直接对HTML Entity解码(不然之前的编码就没用了,在解码过程中也是解析)
  • 使用DOM Parse转换,矫正不配对的DOM标签

Http-only

  • 服务端设置cookie中加入ttp-only请求头,防止js代码获取特定的cookie
CATALOG
  1. 1. xss攻击
    1. 1.1. 反射型
    2. 1.2. 存储型
  2. 2. 防范XSS的防御措施
    1. 2.1. 编码
    2. 2.2. 过滤
    3. 2.3. 校正
    4. 2.4. Http-only