跳到主要内容

11. 安全考虑

安全问题不是本备忘录的主要关注点. 但是, 在 MIME 上下文中有若干安全相关问题值得注意.

潜在安全风险

1. Content Type 欺骗

恶意用户可能发送声称属于某一类型但实际属于另一类型的数据. 例如, 可执行文件可能被标记为 text/plain.

缓解措施:

  • 实现内容类型验证
  • 使用文件签名检测
  • 隔离可执行内容

2. 编码攻击

某些编码可能被用于隐藏恶意内容或绕过安全扫描.

缓解措施:

  • 在安全扫描前解码所有内容
  • 实施纵深防御
  • 警惕过度嵌套的编码

3. 资源耗尽

非常大的或恶意构造的 MIME 消息可能消耗过多资源.

缓解措施:

  • 实现大小限制
  • 设置处理超时
  • 限制嵌套深度

4. 隐私问题

Content-ID 和其他标识符可被用于跟踪.

缓解措施:

  • 限制外部资源加载
  • 提供隐私模式
  • 提供用户控制和透明度

推荐安全实践

  1. 验证输入: 始终验证 Content-Type 和 Content-Transfer-Encoding
  2. 限制处理: 为 MIME 解析设置资源限制
  3. 隔离执行: 在沙箱中处理未知内容类型
  4. 用户警告: 向用户警告潜在危险的内容类型
  5. 定期更新: 保持 MIME 解析器和邮件客户端为最新

要点:

  • MIME 本身不提供安全功能
  • 安全措施必须在应用层实现
  • 始终假定输入可能是恶意的
  • 使用纵深防御策略