2

我们服务器上的 Apache 配置为阻止字节范围 ( CVE 2011-3192 )。但是它使我们在服务器上的音频不播放,因为较新版本的 Safari 和 Chrome 以字节请求它们,但服务器发送整个内容。

任何指针表示赞赏。

4

1 回答 1

3

您可以尝试将 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 的复杂视频流的东西。

于 2013-02-16T19:41:24.230 回答