这是我参与「第四届青训营 」笔记创作活动的第5天
xss (cross-site scripting)恶意脚本攻击
原理
- 盲目信任用户提交的内容
- 直接将用户提交的信息转化成dom节点
特点
- 难以从界面上直接感知到(暗中执行脚本)
- 窃取用户信息 (通过cookie和token)
- 由于可执行js绘制UI,诱使用户点击/填写信息
一、存储型的xss攻击:
- 恶意脚本存在于数据库中,通过访问页面,读用户数据进行攻击,其危害最大,全部用户信息可见
二、反射型xss攻击(发起服务器端,执行在浏览器)
- 通过url进行攻击,当用户访问页面时就会受到攻击
三、Dom型xss攻击(浏览器)
- 攻击的发起和执行都在浏览器完成
四、mutation型xss攻击(针对不同浏览器,最难察觉)
五、Cross-Site request forgery(CSRF)
- 在用户不知情前提下,利用用户权限(例如cookie),构造指定http请求窃取信息
- 场景:用户接到email,用户点击链接触发了恶意请求,这个恶意接口去访问银行的取款接口,从而达到取款的操作
注入
SQL注入
- 读取请求字段
- 以字符串拼接方式,变成带有攻击性的SQL语句
ReDos正则表达式的服务拒绝
- 当正则表达式是没有问号的,即贪婪模式(匹配所有,类似严格匹配),就会导致回溯,多次匹配失败,响应时间变慢,吞吐量变小
DDos
- 通过请求堆积,导致服务器不能完成全部请求,同时由于堆积无法响应新情求(访问IP,任意API,消耗带宽,消耗尽为止)
传输层
中间人攻击
- 导致原因,明文传送信息,未对身份做校验,信息篡改无知觉
防御篇
xss
- google-closure-library框架
- 用户动态生成DOM:
- String转DOM,进行转译
- svg扫描
- 不要让用户自定义跳转、自定义样式(要过滤)
csp (定义安全源,只执行这些)
samesite cookie
- 只带本网站cookie不带第三方cookie
- 设置
Set-Cookie:SameSite = none;Secure,表示信任第三方,允许带cookie
课后阅读
- 基础篇
-
图解HTTP
-
HTTP权威指南