这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
两个角度(hacker/developer)
攻击篇
Cross-Site Scripting(XSS):注入恶意脚本
- 通常难以从 UI上感知(暗地执行脚本)
- 窃取用户信息 (cookie/token)
- 绘制 UI(例如弹窗),诱骗用户点击/填写表单 输入函数没有过滤时,渲染后可能就完成了一次HTML修改
Stored XSS:会被存到数据库中,写数据后就会通过链路传入(所有用户都可能会被攻击)
Reflected XSS:反射型
- 不涉及数据库
- 从URL上攻击
DOM-based XSS
- 不需要服务器的参与
- 恶意攻击的发起+执行,全在浏览器完成
两者比较相似,区别在于完成脚本注入的地方
Mutation-based XSS
- 利用了浏览器染 DOM 的特性(独特优化)
- 不同浏览器,会有区别(按浏览器进行攻击)
下图就是利用chrome对于noscript内部的p渲染方式进行攻击:
Cross-site request forgery(CSRF):跨站伪造请求
- 在用户不知情的前提下
- 利用用户权限(cookie)
- 构造指定HTTP请求,窃取或修改用户敏感信息
如恶意页面拿着用户信息去请求银行接口
Injection:注入攻击
如果在用户名中恶意使用drop table,可以获得删库跑路的 成就
注入并不局限于SQL
- CLI
- OS command
- Server-Side Request Forgery(SSRF),服务端伪造请求严格而言,SSRF 不是 injection,但是原理类似
Denial of Service(DoS):通过某种方式(构造特定请求),导致服务器资源被显著消耗来不及响应更多请求,导致请求挤压,进而雪崩效应。
中间人攻击(恶意浏览器,路由器)
标题:Web 开发安全 - 攻击篇 - 掘金