XSS
概述
XSS:跨站脚本攻击(Cross Site Scripting),攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID等,进而危害数据安全。
XSS分为存储型XSS、反射型XSS、DOM型XSS
防范
防止 HTML 中出现注入,防止 JavaScript 执行时,执行恶意代码。
- 存储型XSS、反射型XSS
- 纯前端渲染,但是还是要注意避免DOM型XSS漏洞(onload事件和href中的javascript:xxx)
- 转义HTML
- 白名单过滤
- DOM型XSS
- 如果不使用框架,避免直接使用innerHTML,尽量使用.textContent、.setAttribute
- 避免内联事件(onClick,onLoad)等
- set-cookies设置Http-Only
CSRF
概述
CSRF:跨站请求伪造(Cross-site request forgery),挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。
危害
攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账……造成的问题包括:个人隐私泄露以及财产安全。
原理

从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤:
- 登录受信任网站A,并在本地生成Cookie。
- 在不登出A的情况下,访问危险网站B。
避免
- cookies不随着跨域请求发送
- 请求头中的Referer请求头来判断请求来源
- 使用Token
