Web 开发安全 - 防御篇| 青训营笔记

56 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天

XSS的防御

不要将用户提交内容直接转换成DOM

image.png

预防XSS——现成工具

前端

  • 主流框架默认防御XSS
  • googLe-closure-library 服务端(Node)
  • DOMPurify
  1. 用户需求:必须动态生成DOM: 对string进行转义;

  2. 上传SVG:对SVG进行扫描;

  3. 自定义样式 攻击:

image.png

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

  • 哪些源(域名)被认为是安全的
  • 来自安全源的脚本可以执行,否则直接抛错
  • 拒绝eval+inline script

防御 CSRF

  1. 当检测到异常来源的时候,限制这种异常请求; image.png

  2. 检测token,保证token的有效期; image.png

  3. iframe攻击:设置利用http响应头部:X-Frame-Options

image.png

  1. 避免用户信息被携带:SameSite Cookie

核心:我的cookie只能为我所用; image.png 限制的主要是cookie的domain字段:

image.png

SameSite 不同于 CORS:

SameSite

  • Cookie发送
  • domain vs 页面域名
  • “我跟你说个事儿,出这屋我可就不认了"

CORS:

  • 资源读写(HTTP请求)
  • 资源域名vs页面域名
  • 白名单

防御Injection

防御SQL的injection

image.png

防御Dos

防御基于正则的Dos

image.png

防御DDos

image.png

防御中间人:https

image.png

简略https过程:

image.png