前端安全 
XSS 
其核心:永远不要相信用户输入的内容
场景描述:攻击人通过在输入框输入恶意代码(script/img onload),并提交(服务器上),当其他用户浏览该页面时,恶意代码执行,从而达到攻击的目的。 现代框架 如 React/Vue 等,都默认开启了 XSS 防护,但是做 富文本、Markdown 等场景时,需要关闭防护。
CSRF 
在用户不知情的情况下,攻击人利用用户身份(cookie),以用户的名义发送请求,从而达到攻击的目的。
场景描述:
- 用户登录了银行网站 -> /transfer?amount=1000&to=1234567890
 - 攻击人诱导用户点击了恶意链接 -> 里面包含了银行网站的 transfer 请求
 - 用户在不知情的情况下,点击了恶意链接,银行网站会以用户的身份,发送 transfer 请求,从而达到攻击的目的。
 
如何防范 XSS/CSRF 
- 使用 
HttpOnly属性,禁止 JavaScript 访问 Cookie - 使用 
Content-Security-Policy限制页面可以加载的资源 - 使用 
CSRF Token验证请求来源 - 使用 
SameSite属性,限制 Cookie 的传输 - 使用 React/Vue 等框架的 
XSS防护 - 使用 token 存入 localStorage 中,每次请求时,将 token 存入请求头中 (避免 CSRF 攻击)