python stdlib模块的xml炸弹防护
defusedxml的Python项目详细描述
概要
攻击易受攻击的xml库的结果可能相当惊人。 只要几百字节的XML数据,攻击者就可以占用几个 千兆字节 内存在 秒内 。攻击者还可以 CPU因中小型请求而长时间繁忙。在一些 在某些情况下,甚至可以访问 服务器,以绕过防火墙,或滥用服务将攻击反弹到 第三方。
这些攻击使用并滥用了xml及其解析器不太常见的特性。这个 大多数开发人员不了解处理等功能 XML从SGML继承的指令和实体扩展。至多 他们知道!doctype>;来自html的经验,但它们不是 注意文档类型定义(dtd)可以生成http请求 或从文件系统加载文件。
这些问题都不是新问题。他们早就出名了。十亿 笑是2003年首次报道的。尽管如此,一些xml库和 应用程序仍然易受攻击,甚至大量的xml用户 对这些特征感到惊讶。很难说谁该为 情况。把所有责任都推到XML解析器和 用于使用不安全默认设置的XML库。毕竟他们 正确实现xml规范。应用程序开发人员不能依赖 库总是为安全性和潜在的有害数据配置的 默认情况下。
目录
- 概要
- 攻击向量
- 十亿笑/指数实体扩展
- 二次放大实体城市扩展
- 外部实体扩展远程(external entity expansion remote)id="id6" rel="nofollow">外部实体扩展(远程)
- 外部实体扩展(本地文件)
- dtd检索
- 在expat中的修改