我们服务器上的 Apache 配置为阻止字节范围 ( CVE 2011-3192 )。但是它使我们在服务器上的音频不播放,因为较新版本的 Safari 和 Chrome 以字节请求它们,但服务器发送整个内容。
任何指针表示赞赏。
我们服务器上的 Apache 配置为阻止字节范围 ( CVE 2011-3192 )。但是它使我们在服务器上的音频不播放,因为较新版本的 Safari 和 Chrome 以字节请求它们,但服务器发送整个内容。
任何指针表示赞赏。
您可以尝试将 apache 设置为仅在发出过多请求时才阻止 Range 标头,而不是完全阻止 Range 标头。来自Apache 维基:
使用 SetEnvIf 或 mod_rewrite 检测大量范围,然后忽略 Range: 标头或拒绝请求。
选项 1:(Apache 2.2,需要 mod_setenvif 和 mod_headers)
# Drop the Range header when more than 5 ranges.
# CVE-2011-3192
SetEnvIf Range (?:,.*?){5,5} bad-range=1
RequestHeader unset Range env=bad-range
# We always drop Request-Range; as this is a legacy
# dating back to MSIE3 and Netscape 2 and 3.
#
RequestHeader unset Request-Range
# optional logging.
CustomLog logs/range-CVE-2011-3192.log common env=bad-range
数字 5 是任意的。几个 10 应该不是问题,并且可能需要站点,例如向非常高端的电子阅读器提供 PDF 或使用诸如基于 http 的复杂视频流的东西。