在攻击篇了解到目前存在哪些技术手段将危害到 Web 安全。在防御篇学习不同攻击手段的技术细节,通过以上学习,更好地维护 Web 安全。
1、攻击篇:
XSS:
- 存储型攻击:恶意脚本会被存在数据库中
- 反射型攻击reflected:在server端完成注入脚本
- 基于DOM的攻击: 在browser端完成插入。
- Mutation-based攻击:利用了浏览器渲染DOM的特性,不同浏览器会有区别。
CSRF跨站请求:
- 在用户不知情的前提下
- 利用用户权限(cookie)
- 构造指定HTTP请求,窃取或修改用户敏感信息
Injection注入:
DoS(拒绝服务) : Denial of Service
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应。
2、防御篇:
针对XSS攻击:
- 永远不信任用户的提交内容
- 不要将用户提交内容直接转换成DOM
SoP(同源策略):Same-origin Policy
同源请求没问题,跨域请求要看请求类型以及对应服务器的配置。
CSP(内容安全策略):Content Security Policy
- 哪些源(域名)被认为是安全的
- 来自安全源的脚本可以执行,否则直接抛错
- 对eval+inline script 说 no!!!!
CSRF的防御:
除了Origin + Referer,,其他判断【 请求来自于合法来源】的方式:
先有页面,后有请求
Injection防御:
- 找到项目中查询SQL的地方
- 使用prepared statement
除了SQL,其他的注入防御:
正则DoS防御:
避免贪婪。。。
DDoS防御:
HTTPS特性:
- 可靠性:加密
- 完整性:MAC验证
- 不可抵赖性:数字签名
TLS握手: