你知道哪些前端攻击?该如何预防?
XSS
- Cross Site Script 跨站脚本攻击
- 手段:黑客将 JS 代码 插入到网页内容中,渲染时执行 JS 代码
- 预防:特殊字符替换(前端或者后端),如
<
>
替换成<
>
- Vue、React 默认屏蔽了 xss 攻击
- 但是 Vue (v-html)、React (dangerouslySetInnerHTML) 会导致 xss 攻击,所以尽可能不要使用这两个
CSRF
- Cross Site Request Forgery 跨站请求伪造
- 手段:黑客诱导用户去访问另一个网站的接口,伪造请求
- 预防:严格的跨域限制 + 验证码机制
- axios 默认做了 CSRF 攻击的措施
详细过程
- 用户登录了 A 网站,有了 cookie
- 黑客诱导用户到 B 网站,并发起 A 网站的请求
- A 网站的 API 发现有 cookie, 认为是用户自己操作的
SCRF 预防手段
- 严格的跨域请求限制,如判断 referrer (请求来源)
- 为 cookie 设置 SameSite, 禁止跨域传递 cookie
- 关键接口使用短信验证码
点击劫持
- Click Jacking
- 手段:诱导界面上蒙一个透明的 iframe, 诱导用户点击
- 预防:让 iframe 不能跨域加载 (Response headers 设置 X-Frame-Options: sameorigin)
总结:前端攻击有哪些
- XSS
- CSRF
- SCRF
- 点击劫持