0%

XSS

XSS, Cross Site Scripting, 跨站脚本攻击.

1. 攻击类型

有3种攻击类型:

1.1. 反射型 XSS

发出请求时, XSS代码出现在URL中, 作为输出提交到服务器端, 服务器端解析后响应, XSS代码随响应内容一期传给浏览器, 最后浏览器解析XSS代码.
这个过程像一次反射, 故叫做反射型XSS.

1.2. 存储型 XSS

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

1.3. DOM XSS

DOM XSS和反射型 XSS, 存储型 XSS的差别在于:DOM XSS的XSS代码并不需要服务器解析响应的直接参与, 触发XSS靠的就是浏览器短的DOM解析, 可以认为完全是客户端的事情.

2. 危害

  • 挂马
  • 盗取用户Cookie
  • Dos客户端浏览器
  • 钓鱼攻击, 高级钓鱼技巧
  • 编写正对性的XSS病毒, 删除目标文章, 恶意篡改数据, 嫁祸
  • 劫持用户Web行为, 甚至进一步参透内网
  • 爆发Web2.0蠕虫
  • 蠕虫式DDos攻击
  • 蠕虫式挂马攻击, 刷广告, 刷流量, 破坏网上数据

3. XSS 防御

  • 编码
    对用户输入的数据进行HTML Entity编码.
字符 转义字符
& &
< <
> >
" "
'
/ /
空格  
  • 过滤
    对用户上传的不安全的内容进行过滤, 比如:
    • 移除用户上传的DOM属性, 如onerror, onclick等.
    • 移除用户上传的style, script, img, iframe等节点.
  • 校正
    • 避免直接对HTML Entity解码.
    • 使用DOM Parse转换, 校正不配对的DOM标签.

4. Resource