这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天
Web 开发安全 - 攻击篇
Web安全一窥
安全问题很常见,会危害用户、公司、程序员
两个角度看Web安全
- 假如你是一个hacker————攻击
- 假如你是一个开发者————防御
攻击篇
XSS
XSS主要利用了
XSS的一些特点
- 通常难以从UI上感知(暗地执行脚本)
- 窃取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
XSS demo
XSS分类
- Stored XSS
- Reflected XSS
Reflected XSS demo
- DOM-based XSS
demo
Reflected 与 DOM-based的区别
- Mutation-based XSS
Cross-site request forgery(CSRF)
- 在用户不知情的前提下
- 利用用户权限(cookie)
- 构造指定HTTP请求,窃取或修改用户敏感信息
demo
GET
SQL Injection
demo
Denial of Service(DoS)
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进行雪崩效应。
正则表达式————贪婪模式
ReDoS:基于正则表达式的DoS
Distributed DoS(DDoS)
Logical DoS
- 耗时的同步操作
- 数据库写入
- 文件备份
- SQL join
- 文件备份
- 循环执行逻辑
传输层
中间人攻击
防御篇
防御XSS攻击
现成工具
Same-origin Policy
Content Security Policy(CSP)
CSRF的防御
token
iframe攻击
CSRF anti-pattern
避免用户信息被携带:Same Site Cookie
- 依赖Coolie的第三方服务怎么办?
- 内嵌一个X站播放器,识别不了用户登录态,发不了弹幕
SameSite 与 CORS的区别
Injection防御
HTTPS的一些特性
数字签名