Passa al contenuto principale

9. Security Considerations (安全考虑事项)

9.1. Establishing Authority (建立权威)

HTTP 依赖 URI 权限组件的概念来确定是否有权发出或响应请求。

9.2. Risks of Intermediaries (中间方的风险)

通过代理、网关或隧道等中间方路由 HTTP 请求和响应会引入多种安全问题:

  • 中间方可能被攻破
  • 中间方可能错误地转换消息
  • 隐私泄露

9.3. Attacks Based on File and Path Names (基于文件和路径名的攻击)

源服务器应谨慎处理包含"."、".."或特殊字符的请求路径,防止目录遍历攻击。

9.4. Attacks Based on Command, Code, or Query Injection (基于命令、代码或查询注入的攻击)

源服务器在将 HTTP 请求内容用于:

  • 构造 SQL 查询
  • 执行系统命令
  • 生成动态代码

时,必须进行适当的输入验证和清理。

9.5. Attacks via Protocol Element Length (通过协议元素长度的攻击)

过长的协议元素可能导致:

  • 缓冲区溢出
  • 拒绝服务 (DoS)
  • 资源耗尽

防护措施:

  • 设置请求行长度限制
  • 设置头部字段大小限制
  • 实施超时机制

9.6. Response Splitting (响应分割)

如果攻击者可以在响应头部字段中注入 CRLF 序列,可能导致响应分割攻击。

防护: 服务器必须验证和清理所有头部字段值。

9.7. Request Smuggling (请求走私)

当不同的服务器或代理对消息边界的理解不一致时,可能发生请求走私攻击。

关键防护:

  • 如果同时收到 Transfer-EncodingContent-Length,必须拒绝或忽略 Content-Length
  • 严格遵守消息解析规则

9.8. Message Integrity (消息完整性)

HTTP 本身不提供消息完整性保护。使用 HTTPS (HTTP over TLS) 可以提供:

  • 加密
  • 身份验证
  • 完整性保护

9.9. Privacy of Server Log Information (服务器日志信息的隐私)

服务器日志通常包含敏感的个人信息,应该受到适当保护。


✅ Section 9 完成

关键安全要点总结:

  1. ✅ 始终验证和清理用户输入
  2. ✅ 实施长度和超时限制
  3. ✅ 严格遵守消息解析规则以防止走私攻击
  4. ✅ 使用 HTTPS 保护敏感通信
  5. ✅ 谨慎处理中间方
  6. ✅ 保护服务器日志中的隐私信息