网络攻击类型
1. 跨站脚本攻击 (XSS - Cross-Site Scripting)
Section titled “1. 跨站脚本攻击 (XSS - Cross-Site Scripting)”1.1. XSS 攻击原理与类型
Section titled “1.1. XSS 攻击原理与类型”XSS 攻击允许攻击者将恶意客户端脚本注入到网页中,当其他用户浏览该网页时,这些脚本就会在用户的浏览器上执行。 XSS 主要分为以下三种类型:
- 反射型 XSS (Reflected XSS):恶意脚本通过 URL 参数注入,并立即被服务器“反射”回用户浏览器执行。
- 存储型 XSS (Stored XSS):恶意脚本被永久存储在目标服务器(如数据库、留言板等),当用户访问包含该脚本的页面时被执行。这是危害最大的一种。
- DOM 型 XSS (DOM-based XSS):恶意脚本的执行是由于客户端的 JavaScript 代码对 DOM 环境操作不当造成的,与服务器端无关。
1.2. XSS 攻击影响
Section titled “1.2. XSS 攻击影响”- 窃取用户
Cookie或Session凭证,导致会话劫持。 - 伪造用户请求,执行未授权操作。
- 修改网页内容,进行钓鱼欺诈。
- 传播恶意软件,感染用户设备。
- 获取用户敏感信息(如键盘记录)。
1.3. XSS 防护办法
Section titled “1.3. XSS 防护办法”- 输入验证与输出编码 (Input Validation & Output Encoding):
- 对所有用户输入进行严格的 白名单验证,只允许合法字符和格式。
- 对所有用户输入的数据在输出到 HTML 页面时进行 严格的上下文编码。根据输出位置(HTML 内容、属性、JavaScript、URL 等)选择不同的编码方式,例如:
HTML Entity Encoding(<编码为<)URL EncodingJavaScript Encoding
- 设置
Cookie的HTTPOnly属性:- 将重要的
Cookie(特别是用于认证的Session Cookie)设置为HTTPOnly属性。 - 这样可以防止客户端的 JavaScript 脚本访问该
Cookie,即使发生 XSS 攻击也无法窃取Cookie。
- 将重要的
- 内容安全策略 (CSP - Content Security Policy):
- 通过 HTTP 响应头或 HTML 的
<meta>标签定义浏览器允许加载哪些资源(如脚本、样式、图片等)的来源。 - 有效限制了恶意脚本的加载和执行,是防御 XSS 的重要手段。
- 例如:
Content-Security-Policy: script-src 'self' https://trusted.cdn.com; object-src 'none';
- 通过 HTTP 响应头或 HTML 的
- 使用安全的富文本编辑器:
- 对于允许用户输入富文本的场景,使用经过安全加固的富文本编辑器,它们通常会对内容进行过滤和清理。
2. 跨站请求伪造 (CSRF - Cross-Site Request Forgery)
Section titled “2. 跨站请求伪造 (CSRF - Cross-Site Request Forgery)”2.1. CSRF 攻击原理
Section titled “2.1. CSRF 攻击原理”CSRF 攻击诱导受害者点击恶意链接或访问恶意网站,从而在用户不知情或未经同意的情况下,利用其已登录的身份执行某些操作(如转账、修改密码等)。攻击的核心是利用了浏览器在发送请求时会自动带上相关域名的 Cookie。
2.2. CSRF 攻击影响
Section titled “2.2. CSRF 攻击影响”- 以受害者身份进行未授权的资金转账。
- 修改受害者账户信息(如邮箱、密码)。
- 发送虚假消息或帖子。
- 恶意网站进行签到、点赞等操作。
2.3. CSRF 防护办法
Section titled “2.3. CSRF 防护办法”- CSRF Token 机制 (Synchronizer Token Pattern):
- 服务器在用户登录时生成一个随机的 CSRF Token,并将其存储在
Session中。 - 每次用户提交表单或发起修改数据的请求时,前端都会将该
Token附加到请求中(通常放在隐藏字段或 HTTP Header 中)。 - 服务器接收请求后,会验证请求中的
Token与Session中的Token是否一致。不一致则拒绝请求。
- 服务器在用户登录时生成一个随机的 CSRF Token,并将其存储在
- 设置
SameSiteCookie 属性:SameSite属性指示浏览器何时发送跨站请求的Cookie。SameSite=Lax(默认值): 仅在部分跨站请求中发送Cookie(如顶级导航 GET 请求)。SameSite=Strict: 仅在同源请求中发送Cookie,完全阻止所有跨站Cookie发送。这是最安全的,但可能影响某些第三方服务。SameSite=None+Secure: 在所有请求中发送Cookie,但必须在 HTTPS 环境下。
- 检查
RefererHeader:- 服务器验证 HTTP 请求头中的
Referer字段,判断请求来源是否为合法站点。 - 局限性:
Referer容易被伪造或被浏览器策略限制发送。
- 服务器验证 HTTP 请求头中的
- 验证码机制:
- 对于敏感操作,强制用户输入图形验证码、短信验证码等,确保操作是用户主动发起的。
3. 重放攻击 (Replay Attack)
Section titled “3. 重放攻击 (Replay Attack)”3.1. 重放攻击原理
Section titled “3.1. 重放攻击原理”重放攻击是指攻击者截获并重新发送合法用户的数据传输(如认证凭证、交易请求),以获得未授权访问或重复执行合法操作。它利用了“只要凭证正确,就无条件信任且无限次执行”这一逻辑的盲区。
3.2. 重放攻击影响
Section titled “3.2. 重放攻击影响”- 重复执行交易,造成资金损失。
- 使用过期凭证或
Session再次登录。 - 未经授权地重复提交表单或操作。
3.3. 重放攻击防护方案
Section titled “3.3. 重放攻击防护方案”- 时间戳机制 (Timestamp):
- 客户端在每次请求中加入当前时间戳。
- 服务器接收请求后,检查时间戳是否在允许的有效期内(例如,与当前服务器时间差不超过
[脱敏时长]秒)。 - 注意:需要保证客户端和服务器时间同步,且不能完全依赖,因为攻击者可能篡改时间戳。
- 一次性随机数机制 (Nonce - Number Used Once):
- 客户端在每次请求中生成一个唯一的随机数
Nonce。 - 服务器接收请求后,将
Nonce存储起来,并在处理请求前检查该Nonce是否已被使用过。如果已使用,则拒绝请求。 Nonce必须是不可预测且全局唯一的。
- 客户端在每次请求中生成一个唯一的随机数
- API 签名机制 (API Signature):
- 客户端将请求的所有关键参数(包括时间戳、Nonce、请求体等)按照约定规则进行排序、拼接,然后使用预共享的密钥对字符串进行哈希签名。
- 签名随请求一起发送到服务器。
- 服务器收到请求后,用相同的密钥和规则计算签名,并与客户端提供的签名进行比对。
- 优点:可以有效防止请求内容被篡改和重放。
4. 分布式拒绝服务攻击 (DDoS - Distributed Denial of Service Attack)
Section titled “4. 分布式拒绝服务攻击 (DDoS - Distributed Denial of Service Attack)”4.1. DDoS 攻击原理
Section titled “4.1. DDoS 攻击原理”DDoS 攻击通过控制多台被感染的计算机(僵尸网络)向目标服务器发起海量请求,耗尽其带宽、计算资源或服务处理能力,导致正常用户无法访问目标服务。
4.2. DDoS 攻击影响
Section titled “4.2. DDoS 攻击影响”- 服务不可用,网站或应用宕机。
- 用户体验严重下降,业务中断。
- 直接或间接的经济损失。
4.3. DDoS 防护方案
Section titled “4.3. DDoS 防护方案”- 高防 IP/CDN 流量清洗:
- 将域名解析到高防 IP 或 CDN 服务商。
- 高防服务商具备强大的带宽和专业设备,能够识别并过滤恶意流量,将正常流量转发至源站。
- 人机识别与行为分析:
- 在流量入口部署人机识别机制(如
CAPTCHA、行为验证码),区分真实用户和自动化僵尸网络。 - 通过分析请求频率、请求头特征、访问模式等识别恶意流量。
- 在流量入口部署人机识别机制(如
- 速率限制 (Rate Limiting):
- 限制来自单个 IP 或用户的请求速率。当请求速率超过预设阈值时,进行警告、验证或直接拒绝。
- 有助于抵御低带宽的慢速 DDoS 攻击和应用层攻击。
- 防火墙与入侵防御系统 (Firewall & IPS):
- 配置防火墙规则,阻断已知恶意 IP 或异常端口的访问。
- IPS 可以实时监测网络流量,识别并阻止各种攻击行为。
- 弹性伸缩与负载均衡 (Auto-scaling & Load Balancing):
- 利用云计算的弹性伸缩能力,在遭受攻击时自动增加服务器实例,分散攻击压力。
- 通过负载均衡将流量分散到多台服务器,避免单点故障。
- 限流与熔断 (Throttling & Circuit Breaking) - 应用层防护:
- 在应用服务内部实现限流,保护核心业务逻辑不被瞬时高并发压垮。
- 熔断机制在依赖服务故障时快速失败,防止雪崩效应。