这是我参与「第四届青训营 」笔记创作活动的第2天
-
xss: Cross-Site Scripting(跨站脚本攻击)
-
这里为啥不是css而是xss,因为css你用的更多,为了防止搞混
-
特点
- 从UI上难以察觉(暗地里执行脚本)
- 切取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
-
分类
-
Stored XSS--存储型XSS
- 恶意脚本被存放在数据库中
- 访问页面读取数据就会被攻击
- 危害最大,影响所有用户
-
Reflected XSS --反射型XSS
- 不涉及数据库
- 从url上攻击
- 从服务端注入
-
DOM-based XSS--基于DOM的XSS
- 不需要服务器参与
- 攻击的发起和执行全在浏览器完成
-
Mutation-based XSS
- 利用浏览器渲染DOM的特性
- 不同的浏览器攻击方式不同
-
-
防范措施
-
永远不信任用户的提交内容
-
永远不要把用户提交的内容直接转换成DOM
-
现成工具
-
前端
- 主流框架默认防御XSS
- google-closure-library
-
Node
- DOMPurify
-
-
-
-
CSRF: Cross-site request forgery(跨站伪造请求)
- 用户不知情的情况下利用用户权限(cookie)构造指定HTTP请求,切取或修改用户敏感信息
- 防御措施
- 使用token验证
- 验证 HTTP Referer 字段
- 在 HTTP 头中自定义属性并验证
-
Injection (注入)
- SQL Injection
- 防御措施
- 严格检查输入变量的类型和格式
- 过滤和转义特殊字符
- 防御措施
- SQL Injection
-
DoS: Denial of Service(服务拒绝)
- 通过某种方式构造特定请求,导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应
- 防御措施
- 过滤不必要的服务和端口
- 检查访问者的来源
- 限制SYN/ICMP流量
-
DDos
- 短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。
- 攻击特点
- 直接访问IP
- 任意API
- 消耗大量带宽
- 防御措施
- 使用高防服务器、高防CDN、高防IP