Web开发的安全之旅(下)|青训营笔记

70 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第10天

前端基础班第9节:Web开发的安全之旅(下)。

Web开发的安全之旅(上)|青训营笔记 - 掘金 (juejin.cn)

(接上篇)

2.防御篇

(1)XSS
  • 永远不要相信用户的提交内容
  • 不要将用户提交内容直接转换成DOM
  • 防御XSS的现成工具:
    • 前端:
      
      •     主流框架默认防御XSS
        
      •     google-closure-library
        
    • 服务端(Node):
      
      •     DOMPurify
        
  • 注:

(1)如果用户需求必须动态生成DOM

1.string->dom :对string转义

2.上传svg:扫描svg文件

3.避免自定义跳转链接

4.自定义样式

(2)同源策略Same-origin Policy

image.png

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

  • 哪些源(域名)被认为是安全的
  • 来自安全源的脚本可以执行,否则直接抛错
  • 对eval+inline script 说no
  • 例:
image.png
(2)CSRF的防御
image.png
  • token:
image.png
- 机制:
image.png
  • iframe攻击
image.png
  • anti-pattern

数据和隐私有可能泄露:

image.png
  • SameSite Cookie

从根源上预防了CSRF

image.png

限制了domain:

image.png

SameSite vs CORS

image.png
(3)Injection的防御
  • 找到项目中查询SQL的地方
  • 使用prepared statement
image.png
(4)防御DoS

1.Regex DoS

  • 避免贪婪匹配
  • 代码扫描+正则性能测试
  • 拒绝用户提供的使用正则

2.DDoS

  • 流量治理
    • 负载均衡
    • API网关
    • CDN
  • 快速自动扩容
  • 非核心服务降级

3.传输层--防御中间人

image.png
  • HTTPS的一些特性:

    • 可靠性:加密
    • 完整性:MAC验证
    • 不可抵赖性:数字签名
  • HSTS:

image.png
总结:
image.png