如何转义多部分 HTTP 边界



假设我正在发送一个多部分请求(或响应)。我需要选择一个未出现在任何有效负载中的多部分边界。但是,我的有效负载是大型二进制文件,我正在将它们流式传输到目的地。我想避免流式传输它们两次 - 一次用于扫描边界,一次用于流式传输。

所以我的问题是:如果它出现在有效载荷中,是否有可能逃脱边界?如果是这样,如何?

不要

惊慌。边界长度最多为 70 个字符。如果您使用最大值并从字符和数字中随机生成它,则文件中每个位置将有 62⁷⁰ 种可能的组合。在您的二进制文件中具有相同字节序列的机会是如此之小,以至于它根本不😀应该打扰您的睡眠。1GB 文件中发生冲突的概率大致为 1-((1-(1/(62^70)))^(10^9)) ~= 3.4*10⁻¹¹⁸。人类的大脑无法真正理解这个数字有多小。相比之下,我们宇宙中的原子数量估计为~10⁸⁰。

不,这是不可能的;您需要扫描或忍受潜在的故障。

最新更新