サーバー上のApacheは、バイト範囲をブロックするように構成されています(CVE 2011-3192)。ただし、新しいバージョンのSafariとChromeがバイト単位で要求するため、サーバー上にあるオーディオが再生されないようにしますが、サーバーはコンテンツ全体を送信します。
どんなポインタでも大歓迎です。
サーバー上のApacheは、バイト範囲をブロックするように構成されています(CVE 2011-3192)。ただし、新しいバージョンのSafariとChromeがバイト単位で要求するため、サーバー上にあるオーディオが再生されないようにしますが、サーバーはコンテンツ全体を送信します。
どんなポインタでも大歓迎です。
Rangeヘッダーを完全にブロックするのではなく、要求が多すぎる場合にのみ範囲ヘッダーをブロックするようにapacheを設定してみてください。Apache Wikiから:
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ベースのビデオストリーミングなどを使用したりするサイトでは必要になる場合があります。