这是我参与[第五届青训营]伴学笔记创作活动的第12天
课程概要
攻击篇
- Cross-Site Scripting(XSS)
- Cross-Site request forgery(CSRF)
- Injection
- Denial of Service(Dos)
- Distributed Dos(DDoS)
- 中间人攻击
防御篇
- XSS的防御
- 防御CSRF的正确姿势
- 防御Dos
- 防御Injection
- 防御中间人
安全问题“很常见”,会危害
- 用户
- 公司
- 程序员(祭天)
两个角度看web安全
- 假如你是一个hacker——— 攻击
- 假如你是一个开发者——防御
# 攻击篇
一、跨站脚本攻击
xss主要利用了
xss的一些特点
xss demo
假如我是攻击者 html被插入了标签 完成了一次攻击
二、xss分类
(一)存储型数据攻击
(二)反射型攻击 不涉及数据库
Reflected XSS Dome
攻击者把这个构造成恶意标签 ,不需要服务器的参与 攻击发起 参与直接由浏览器完成
(三)基于dom的xss攻击
(四)Mutation-bassed XSS
利用浏览器渲染DOM的特性
html片段 xss过滤属性中会把这个标签识别为正常标签
三、Cross-site forgery(CSRF)
跨站轨道请求
应用用户权限
最常见的形式
四、Inflection
最常见的注入
Inflection Dome1
Inflection Dome2
Inflection Dome2- 读取修改
五、Denial of Service(Dos)
(一)、贪婪模式
(二)、回溯贪婪模式
(三)、Distributed Dos(DDos)
六、中间人攻击
运用
- 明文传输
- 信息篡改不可知
- 对方身份未验证
## 防御篇
一、XSS的防御
永远不信任用户提交的内容
不要将用户提交内容直接转换为DOM
(一)、XSS防御的现成工具
1.
2.如果非要生成DOM
(二)、三种方式防御
:
1.
2.
3.
插播:
Same-origin Policy必须同源
比如:
响应头部服务器,此外一切都不可以
二、防御CSRF的正确姿势
(一)、CSRF的防御
(二)、判断来自合法来源
绕过Origin的攻击,没有跨域而是同源请求。
(三)、具体实践流程思路:
注:
GET!==GET+POST
获取与修改数据同时进行 ,up和get如果被攻击,用户的数据和隐私都会泄露
(四)、另一种防御CSRF的手段
页面的cookie只能为我所用,
如果是第三方服务器怎么办 SameSite=None;标为Secure
(五)、SameSite和CORS的区别
举例:
(六)、防御CSRF的正确姿势
三、防御Dos
(一)、防御DDos的方式
- 过滤
-抗量
避免贪婪匹配模式
四、防御Injection
方式:
五、防御中间人
HTTPS的特性
避免明文传输
1.完整性
2.数字签名
3.证书
HTTPS的流程
HTTP升级到HTTPS
防御:静态资源托管
SRI伪代码
补充内容:
Feature Policy
不小心被攻击,可以限制敏感信息不泄露