Skip to content
大纲

常见攻击

跨站脚本攻击(XSS)

  • 攻击原理:通过注入包含可被浏览器解析的标签(如 script),让浏览器对标签内容解析为脚本并执行。
  • 攻击方式:通过向数据库提交恶意代码(常见于社区、论坛网站);创建包含恶意代码的 URL 由前端执行。
  • 预防方式
    • 服务端:设置 CSP(内容安全策略),拦截不安全的数据,设置 HTTP-only 避免脚本获取
    • 服务端渲染:在使用数据拼接 HTML 时对数据进行转义处理
    • 浏览器渲染:在使用 innerHTML/v-html 时对文本进行转义处理

跨站请求伪造(CSRF)

  • 攻击原理:若网站仅通过 cookie 作为用户身份验证,则服务端只能确保请求的来源而无法确保由是否由用户本身发出
  • 攻击方式:攻击网站(B)向使用简单授权的网站(A)发送请求,若用户在 A 的 cookie 未过期,则可能遭受伪造攻击。
  • 预防方式
    • 同源检测:检测 OriginReferer 字段拦截非同源请求
    • 凭证检测:使用 Token 对用户进行检测而非简单的 cookie
    • 双重 cookie:在发送请求时携带 cookie 作为 URL 参数,后端验证 cookie 与参数是否相同 (利用 CSRF 攻击无法获取 cookie 值的特点)

SQL 注入

  • 攻击原理:通过注入包含 SQL 处理的数据作为普通字符串,在对 SQL 语句进行字符串拼接的时候,直接使用为转义的内容并执行
  • 攻击方式:通过在向数据库提交信息的场景提交恶意字符串
  • 预防方式
    • 对提交内容进行特殊字符过滤
    • 语法上禁止 SQL 语句拼接,严格使用参数绑定

分布式拒绝服务攻击(DDos)

  • 攻击原理: 处于不同位置的多个攻击者同时向一或多个目标发起请求
  • 攻击方式: 多台设备同时大量发送请求导致服务器瘫痪
  • 攻击类型
    • 针对漏洞: 针对特定漏洞的目标有效, 发动攻击的成本较低但要求较高
    • 占用业务: 针对性能消耗较高的业务导致业务系统性能出现瓶颈
    • 消耗带宽: 大规模连续请求服务器以消耗服务带宽
  • 预防方式
    • 网络层防护
      • SYN Flood 攻击防护:实时检测过滤畸形包和不符合规则的报文,同时通过 SYN Cookie 校验、重传验证等方式完成客户端的协议行为验证,阻断攻击。
      • ACK Flood 攻击防护:实时存储连接表信息,通过对接收到的 ACK 报文进行智能校验,判断其是否为合法报文,如不合法,则直接丢弃。
      • ICMP Flood 攻击防护:实时统计到达目的 IP 的流量,超过设定阈值则直接丢包。
      • UDP Flood 攻击防护:通过速率限制、UDP 报文匹配等方式防御 UDP Flood
      • 反射型 DDoS 攻击防护:直接过滤来自常用的反射端口(如 NTP、Memcache、SSDP 等)的报文防御反射型。
    • 应用层防护
      • 威胁情报库:通过大数据分析平台,实时汇总分析攻击日志,提取攻击特征并进行威胁等级评估,形成威胁情报库。
      • 个性化策略配置:如请求没有命中威胁情报库中的高风险特征,则通过 IP 黑白名单、访问频率控制等防御攻击。
      • 日志自学习: 实时动态学习网站访问特征,建立网站的正常访问基线。
      • 人机校验:当请求与网站正常访问基线不一致时,启动人机校验(如 JS 验证、META 验证等)方式进行验证,拦截攻击。
      • 对 Slow Headers 攻击,通过检测请求头超时时间、最大包数量阈值进行防护。
      • 对 Slow Post =攻击,通过检测请求小包数量阈值进行防护。
    • 流量监控、动态扩容

时序攻击

  • 攻击原理: 通过观测处理时间来推导结果
    • 如: 比对字符串时按位对比,当出现不同项后则直接结束,因而可以通过比对时长判断相同位数
  • 如何避免
    • 增加一次随机处理
    • 对处理时间采用均匀返回