重要 : この資料には、レジストリの編集方法が記載されています。万一に備えて、編集の前には必ずレジストリをバックアップし、レジストリの復元方法を理解しておいてください。バックアップ、復元、および編集方法の詳細を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
256986 Microsoft Windows レジストリの説明
この資料の内容
概要
この資料では、Microsoft インターネット インフォメーション サービス (IIS) がクライアントから受け付ける HTTP 送信のヘッダー サイズを制限する方法について説明します。最近行われている Microsoft Internet Information Server 4.0 および IIS 5.0 に対する悪質な攻撃は、HTTP アプリケーション層ヘッダーに大量のデータを送信できる機能に依存しています。このような攻撃の例には、Code Red Worm のバージョン I および II などがあります。アプリケーション層のヘッダーに格納された大量の情報が原因で、バッファのオーバーフローが発生することや、サーバーが侵害されるおそれがあります。
Internet Information Server 4.0 および IIS 5.0 では、Internet Information Server および IIS の WWW (World Wide Web) サービスで受け付ける要求行およびヘッダー フィールドの最大サイズを制御するための方法がサポートされています。
MaxClientRequestBuffer レジストリ エントリは、Internet Information Server および IIS の要求バッファで受け付けるデータの容量を制限するために使用されます。このデータには、要求の最初の 1 バイトから要求の本文直前の最後の 1 バイトまでのすべての情報が含まれます。このデータには、メソッド、URL、パスの追加情報、クエリ文字列、HTTP のバージョン、および要求のすべての部分を区切っているヘッダーや文字が含まれます。
Internet Information Server 4.0 のデフォルトのクライアント要求バッファのサイズは 2 MB です。IIS 5.0 のデフォルトのクライアント要求バッファのサイズは 128 KB です。IIS 5.0 Service Pack 4 (SP4) のデフォルトのクライアント要求バッファのサイズは 16 KB です。ユーザーが多数のグループに属している場合、IIS の要求バッファのサイズによって、大きなトークンを伴う Kerberos 認証が制限を受けることがあります。IIS サーバーに対して大きすぎるトークンを持つユーザーが存在する場合、該当するクライアントの Web ブラウザには次のメッセージが表示されます。
HTTP 400 正しくない要求 (データが無効です)
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
277741 Kerberos トークンに割り当てられたバッファが不十分で Internet Explorer によるログオンが失敗する
280830 ユーザーが多くのグループのメンバである場合に Kerberos 認証が機能しないことがある
レジストリに MaxClientRequestBuffer 値を追加する
警告 : レジストリ エディタの使い方を誤ると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリ エディタの誤用により発生した問題に関しては、一切責任を負わないものとします。レジストリ エディタは、自己の責任においてご使用ください。
注 : 以下の手順を実行する前に、この資料の「トラブルシューティング」を参照してください。
-
[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。regedt32 と入力し、Enter キーを押します。
-
レジストリ エディタで次のキーを見つけて、クリックします。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters
-
[編集] メニューの [新規] をポイントし、[DWORD 値] をクリックします。
-
"New Value #1" という文字列を削除して、MaxClientRequestBuffer と入力します。
-
[MaxClientRequestBuffer] 値をダブルクリックします。
-
[DWORD 値の編集] ダイアログ ボックスで、[ベース] の [10 進数] をクリックします。[値のデータ] ボックスに、許容するバッファのサイズを バイト単位の値で入力します。[OK] をクリックします。
-
レジストリ エディタを終了します。
-
変更を有効にするために、Web Publishing Service を再起動します。
トラブルシューティング
MaxClientRequestBuffer レジストリ値で設定される制限は、完全に正確ではありません。必要な制限を設定するには、さまざまな値を使用してテストすることが必要な場合があります。この設定は ISAPI フィルタに影響を及ぼす可能性があるため、このテストを行うことは特に重要です。
関連情報
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
255574
[IIS] 戻り値 SF_STATUS_REQ_READ_NEXT を使用するフィルタにより IIS でエラーが発生する