跳转到内容

网络攻击类型

1. 跨站脚本攻击 (XSS - Cross-Site Scripting)

Section titled “1. 跨站脚本攻击 (XSS - Cross-Site Scripting)”

XSS 攻击允许攻击者将恶意客户端脚本注入到网页中,当其他用户浏览该网页时,这些脚本就会在用户的浏览器上执行。 XSS 主要分为以下三种类型:

  • 反射型 XSS (Reflected XSS):恶意脚本通过 URL 参数注入,并立即被服务器“反射”回用户浏览器执行。
  • 存储型 XSS (Stored XSS):恶意脚本被永久存储在目标服务器(如数据库、留言板等),当用户访问包含该脚本的页面时被执行。这是危害最大的一种。
  • DOM 型 XSS (DOM-based XSS):恶意脚本的执行是由于客户端的 JavaScript 代码对 DOM 环境操作不当造成的,与服务器端无关。
  • 窃取用户 CookieSession 凭证,导致会话劫持。
  • 伪造用户请求,执行未授权操作。
  • 修改网页内容,进行钓鱼欺诈。
  • 传播恶意软件,感染用户设备。
  • 获取用户敏感信息(如键盘记录)。
  • 输入验证与输出编码 (Input Validation & Output Encoding)
    • 对所有用户输入进行严格的 白名单验证,只允许合法字符和格式。
    • 对所有用户输入的数据在输出到 HTML 页面时进行 严格的上下文编码。根据输出位置(HTML 内容、属性、JavaScript、URL 等)选择不同的编码方式,例如:
      • HTML Entity Encoding ( < 编码为 &lt; )
      • URL Encoding
      • JavaScript Encoding
  • 设置 CookieHTTPOnly 属性
    • 将重要的 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';
  • 使用安全的富文本编辑器
    • 对于允许用户输入富文本的场景,使用经过安全加固的富文本编辑器,它们通常会对内容进行过滤和清理。

2. 跨站请求伪造 (CSRF - Cross-Site Request Forgery)

Section titled “2. 跨站请求伪造 (CSRF - Cross-Site Request Forgery)”

CSRF 攻击诱导受害者点击恶意链接或访问恶意网站,从而在用户不知情或未经同意的情况下,利用其已登录的身份执行某些操作(如转账、修改密码等)。攻击的核心是利用了浏览器在发送请求时会自动带上相关域名的 Cookie

  • 以受害者身份进行未授权的资金转账。
  • 修改受害者账户信息(如邮箱、密码)。
  • 发送虚假消息或帖子。
  • 恶意网站进行签到、点赞等操作。
  • CSRF Token 机制 (Synchronizer Token Pattern)
    • 服务器在用户登录时生成一个随机的 CSRF Token,并将其存储在 Session 中。
    • 每次用户提交表单或发起修改数据的请求时,前端都会将该 Token 附加到请求中(通常放在隐藏字段或 HTTP Header 中)。
    • 服务器接收请求后,会验证请求中的 TokenSession 中的 Token 是否一致。不一致则拒绝请求。
  • 设置 SameSite Cookie 属性
    • SameSite 属性指示浏览器何时发送跨站请求的 Cookie
    • SameSite=Lax (默认值): 仅在部分跨站请求中发送 Cookie (如顶级导航 GET 请求)。
    • SameSite=Strict: 仅在同源请求中发送 Cookie,完全阻止所有跨站 Cookie 发送。这是最安全的,但可能影响某些第三方服务。
    • SameSite=None + Secure: 在所有请求中发送 Cookie,但必须在 HTTPS 环境下。
  • 检查 Referer Header
    • 服务器验证 HTTP 请求头中的 Referer 字段,判断请求来源是否为合法站点。
    • 局限性Referer 容易被伪造或被浏览器策略限制发送。
  • 验证码机制
    • 对于敏感操作,强制用户输入图形验证码、短信验证码等,确保操作是用户主动发起的。

重放攻击是指攻击者截获并重新发送合法用户的数据传输(如认证凭证、交易请求),以获得未授权访问或重复执行合法操作。它利用了“只要凭证正确,就无条件信任且无限次执行”这一逻辑的盲区。

  • 重复执行交易,造成资金损失。
  • 使用过期凭证或 Session 再次登录。
  • 未经授权地重复提交表单或操作。
  • 时间戳机制 (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)”

DDoS 攻击通过控制多台被感染的计算机(僵尸网络)向目标服务器发起海量请求,耗尽其带宽、计算资源或服务处理能力,导致正常用户无法访问目标服务。

  • 服务不可用,网站或应用宕机。
  • 用户体验严重下降,业务中断。
  • 直接或间接的经济损失。
  • 高防 IP/CDN 流量清洗
    • 将域名解析到高防 IP 或 CDN 服务商。
    • 高防服务商具备强大的带宽和专业设备,能够识别并过滤恶意流量,将正常流量转发至源站。
  • 人机识别与行为分析
    • 在流量入口部署人机识别机制(如 CAPTCHA、行为验证码),区分真实用户和自动化僵尸网络。
    • 通过分析请求频率、请求头特征、访问模式等识别恶意流量。
  • 速率限制 (Rate Limiting)
    • 限制来自单个 IP 或用户的请求速率。当请求速率超过预设阈值时,进行警告、验证或直接拒绝。
    • 有助于抵御低带宽的慢速 DDoS 攻击和应用层攻击。
  • 防火墙与入侵防御系统 (Firewall & IPS)
    • 配置防火墙规则,阻断已知恶意 IP 或异常端口的访问。
    • IPS 可以实时监测网络流量,识别并阻止各种攻击行为。
  • 弹性伸缩与负载均衡 (Auto-scaling & Load Balancing)
    • 利用云计算的弹性伸缩能力,在遭受攻击时自动增加服务器实例,分散攻击压力。
    • 通过负载均衡将流量分散到多台服务器,避免单点故障。
  • 限流与熔断 (Throttling & Circuit Breaking) - 应用层防护
    • 在应用服务内部实现限流,保护核心业务逻辑不被瞬时高并发压垮。
    • 熔断机制在依赖服务故障时快速失败,防止雪崩效应。