Skip to content

XSS(跨站脚本攻击)攻击原理与防御方案

XSS: 跨站脚本攻击

攻击者通过在不同手段在网站上注入恶意脚本,使之在用户的浏览器上运行。

  • 后果:窃取cookie、窃取用户数据发送到第三方服务器、钓鱼链接

常见的xss攻击类型

1. 存储型(存储在后端数据库的, 返回前端后直接渲染)

2. 反射型(攻击者构造出特殊的 URL让用户访问)

js
<a id="a" href="http://www.some.site/page.html?default=<script>alert(document.cookie)</script>">test</a>

测试ie8都没弹窗...(chrome更不可能执行url中的script了)

3.DOM型(使用innerHTML等存在隐患的api)

XSS防范

1.存储型与反射型需要在后端处理

2.DOM型

2.1 过滤用户的输入数据,转义 & < > " ' / 这几个字符【简单防范】

2.2 CSP(Content Security Policy) 内容安全策略

2.3 设置Cookie为HTTP-only:(详见cookie详解


CSP(内容安全策略)

1、通过 HTTP 头信息的Content-Security-Policy字段启用csp

2、通过网页的meta标签启用csp:<meta http-equiv="Content-Security-Policy" content="script-src 'self'"> meta标签作用

设置Cookie的HTTP-only

禁止 JavaScript 读取某些敏感 Cookie,攻击者完成 XSS 注入后也无法窃取此 Cookie