Web 开发安全| 青训营笔记

50 阅读1分钟

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

Web 开发安全 - 攻击篇

Web安全一窥

安全问题很常见,会危害用户、公司、程序员

两个角度看Web安全

  • 假如你是一个hacker————攻击
  • 假如你是一个开发者————防御

攻击篇

XSS

image.png XSS主要利用了

image.png XSS的一些特点

  • 通常难以从UI上感知(暗地执行脚本)
  • 窃取用户信息(cookie/token)
  • 绘制UI(例如弹窗),诱骗用户点击/填写表单

XSS demo

image.png

image.png XSS分类

  • Stored XSS

image.png

  • Reflected XSS

image.png Reflected XSS demo

image.png

  • DOM-based XSS

image.png demo

image.png

Reflected 与 DOM-based的区别

image.png

  • Mutation-based XSS

image.png

image.png

Cross-site request forgery(CSRF)

  • 在用户不知情的前提下
  • 利用用户权限(cookie)
  • 构造指定HTTP请求,窃取或修改用户敏感信息

demo

image.png GET

image.png SQL Injection

image.png demo

image.png

image.png

Denial of Service(DoS)

通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进行雪崩效应。

正则表达式————贪婪模式

image.png ReDoS:基于正则表达式的DoS

image.png Distributed DoS(DDoS)

image.png Logical DoS

  • 耗时的同步操作
  • 数据库写入
  • 文件备份
  • SQL join
  • 文件备份
  • 循环执行逻辑

image.png

传输层

中间人攻击

image.png

防御篇

防御XSS攻击

image.png 现成工具

image.png Same-origin Policy

image.png Content Security Policy(CSP)

image.png

CSRF的防御

image.png token

image.png

image.png iframe攻击

image.png CSRF anti-pattern

image.png 避免用户信息被携带:Same Site Cookie

image.png

image.png

  • 依赖Coolie的第三方服务怎么办?
    • 内嵌一个X站播放器,识别不了用户登录态,发不了弹幕

SameSite 与 CORS的区别

image.png

Injection防御

image.png

image.png

image.png

HTTPS的一些特性

image.png 数字签名

image.png

image.png

一点点补充内容

image.png

image.png