攻击
XSS
XSS是指攻击者利用站点的漏洞,在表单提交时,在表单内容中加入一些恶意脚本,当其他正常用户浏览页面,而页面中刚好出现攻击者的恶意脚本时,脚本被执行,从而使得页面遭到破坏,或者用户信息被窃取。
XSS特点:
-通常难以从UI上感知(暗地执行脚本) -窃取用户信息(cookie/token) -绘制UI(例如弹窗),诱骗用户点击/填写表单
XSS防御方式:
服务器端对用户提交的内容进行过滤或编码
- 过滤:去掉一些危险的标签,去掉一些危险的属性
- 编码:对危险的标签进行HTML实体编码
XSS分类
存储型XSS
Stored XSS:
会被存到数据库中
-把恶意意脚本被存在数据中 -访问页面 → 读数据≡≡被攻击 -危害最大,对全部用户可见
反射型XSS攻击
Reflected XSS :
-不涉及数据库 -从URL上攻击
基于DOM的XSS攻击
DOM-based XSS:
一不需要服务器的参与 一恶意攻击的发起+执行,全在浏览器完成
Reflected 和DOM-basedXSS的对比:
基于Mutation的XSS攻击
Mutation-based XSS:
-利用了浏览器渲染DOM的特性(独特优化) -不同浏览器,会有区别(按浏览器进行攻击)
跨站伪造请求
Cross-site requestforgery(CSRF):
它是指攻击者利用了用户的身份信息,执行了用户非本意的操作
一在用户不知情的前提下 一利用用户权限(cookie) 一构造指定HTTP请求,窃取或修改用户敏感信息
CSRF举例:
防御方式:
| 防御手段 | 防御力 | 问题 |
|---|---|---|
| 不使用cookie | ⭐️⭐️⭐️⭐️⭐️ | 兼容性略差 ssr会遇到困难,但可解决 |
| 使用sameSite | ⭐️⭐️⭐️⭐️ | 兼容性差 容易挡住自己人 |
| 使用csrf token | ⭐️⭐️⭐️⭐️⭐️ | 获取到token后未进行操作仍然会被攻击 |
| 使用referer防护 | ⭐️⭐️ | 过去很常用,现在已经发现漏洞 |
注入攻击
SQL Injection :
服务拒绝
Denial of Service(DoS):
通过某种方式(构造特定请求),导致服务器资源被显著消耗, 来不及响应更多请求,导致请求挤压,进而雪崩效应。
1)ReDoS:基于正则表达式的DoS
2)Distributed DoS(DDoS)分布式拒绝服务:
短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成 全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。主要目的是消耗带宽
-耗时的同步操作 -数据库写入
-SQL join -文件备份 -循环执行逻辑
传输层攻击-中间人攻击
①明文传输 ②信息篡改不可知 ③对方身份未验证