哪些解压缩算法可以安全地用于攻击者提供的缓冲区?

问题描述

我想通过使用压缩来节省网络带宽,例如 bzip2 或 gzip。

攻击者以及普通用户可能会发送压缩消息。

是否有字节序列会导致某些解压缩函数陷入无限循环或使用大量内存?

是吗,这是这些算法的基本属性,还是只是一个实现错误

解决方法

我只能说 zlib 的膨胀。没有会导致无限循环或不受控制的内存消耗的输入。

由于deflate的最大压缩比小于1032:1,所以正常工作时inflate可以膨胀到差不多1032:1。你只需要能够处理这种可能性。