Web 开发的安全之旅 | 青训营笔记
这是我参与「第四届青训营 」笔记创作活动的的第5天
1. Web安全一窥
安全问题很常见,会危害
- 用户
- 公司
- 程序员(祭天)
2. 两个角度看Web安全
- 假如你是一个hacker————攻击
- 假如你是一个开发者————防御
3. Cross-Site Scripting(XSS)
4. XSS的一些特点
- 通常难以从UI上感知(暗地执行脚本)
- 窃取用户信息库(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
5. Stored XSS
- 恶意脚本被存在数据库中
- 访问页面->读数据===被攻击
- 危害最大,对全部用户可见
6. Reflected XSS
- 不涉及数据库
- 从URL上攻击
7. DOM-based XSS
- 不需要服务器的参与
- 恶意攻击的发起+执行,全在浏览器完成
8. Mutation-based XSS
- 利用了浏览器渲染DOM的特性(独特优化)
- 不同浏览器,会有区别(按浏览器进行攻击)
9. Cross-site request forgery(CSRF)
- 在用户不知情的前提下
- 利用用户权限(cookie)
- 构造指定HTTP请求,窃取或修改用户敏感信息
10. Injection demo 1
- 读取请求字段
- 直接以字符串的形式拼接SQL语句
11. Injection demo 2————读取+修改
- 流量转发到真实第三方
- 第三方扛不住新增流量
- 第三方服务挂掉
- 你的竞争对手已下线
12. SSRF demo
- 请求用户自定义的callback URL
- web server通常用内网访问权限
13. Denial of Service(DoS) 通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应。
14. DDoS 短时间内,来自大量僵尸设备的请求流量,服务不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。
攻击特点
- 直接访问 IP
- 任意 API
- 消耗大量带宽(耗尽)
15. 中间人攻击
- 明文传输
- 信息篡改不可知
- 对方身份未验证
16. XSS
- 永远不信任用户的提交内容
- 不要将用户提交内容直接转换成DOM
17. Same-origin Policy
- 协议
- 域名
- 端口
HTTP请求:同源,跨域
18. HTTPS的一些特性
- 可靠性:加密
- 完整性:MAC验证
- 不可依赖性:数字签名