コンテンツタイプの管理
Web サーバーは、コンテンツタイプごとに MIME/タイプ定義を含む Content-Type ヘッダーを追加します。Web サーバーは、さまざまな種類のコンテンツを提供します。たとえば、標準 HTML には「text/html」の MIME タイプが割り当てられます。JPG 画像には、「画像/JPEG」または「画像/jpg」コンテンツタイプが割り当てられます。通常のウェブサーバーは、割り当てられた MIME/Type によって Content Type ヘッダーで定義されているさまざまなタイプのコンテンツを提供できます。
Web App Firewall のフィルタリングルールの多くは、特定のコンテンツタイプをフィルタリングするように設計されています。フィルタールールは HTML などの 1 種類のコンテンツに適用され、別の種類のコンテンツ (画像など) をフィルタリングする場合には不適切な場合がよくあります。そのため、Web App Firewall は、リクエストとレスポンスのコンテンツタイプをフィルタリングする前に、そのコンテンツタイプを特定しようとします。Web サーバーまたはブラウザが要求または応答に Content-Type ヘッダーを追加しない場合、Web App Firewall はデフォルトのコンテンツタイプを適用し、それに応じてコンテンツをフィルタリングします。
デフォルトのコンテンツタイプは通常「application/octet-stream」で、MIME/タイプ定義が最も一般的です。MIME/タイプは、ウェブサーバーが配信する可能性のあるあらゆるコンテンツタイプに適しています。ただし、Web App Firewall が適切なフィルタリングを選択するための情報はあまり提供されません。保護された Web サーバーが正確なコンテンツタイプヘッダーを追加するように設定されている場合は、その Web サーバーのプロファイルを作成し、それにデフォルトのコンテンツタイプを割り当てることができます。これは、フィルタリングの速度と精度の両方を向上させるためです。
特定のプロファイルに許可されるリクエストコンテンツタイプのリストを設定することもできます。この機能を設定すると、Web App Firewall が許可されているコンテンツタイプのいずれにも一致しないリクエストをフィルタリングすると、そのリクエストはブロックされます。
リクエストは必ず「application/x-www-form-urlencoded」、「multipart/form-data」、または「text/x-gwt-rpc」タイプのいずれかでなければなりません。Web App Firewall は、他のコンテンツタイプが指定されたリクエストをすべてブロックします。
注
許可される応答コンテンツタイプリストに「application/x-www-form-urlencoded」または「multipart/form-data」コンテンツタイプを含めることはできません。
コマンドラインインターフェイスを使用してデフォルトのリクエストコンテンツタイプを設定するには
コマンドプロンプトで、次のコマンドを入力します。
set appfw profile <name> -requestContentType <type>
save ns config
例
次の例では、「text/html」コンテンツタイプを指定されたプロファイルのデフォルトとして設定しています。
set appfw profile profile1 -requestContentType "text/html"
save ns config
<!--NeedCopy-->
コマンドラインインターフェイスを使用してユーザー定義のデフォルトリクエストコンテンツタイプを削除するには
コマンドプロンプトで、次のコマンドを入力します。
unset appfw profile <name> -requestContentType <type>
save ns config
例
次の例では、指定されたプロファイルのデフォルトのコンテンツタイプである「text/html」の設定を解除して、タイプを「application/octet-stream」に戻せるようにします。
unset appfw profile profile1 -requestContentType "text/html"
save ns config
<!--NeedCopy-->
注
処理には常に最後のコンテンツタイプヘッダーを使用し、バックエンドサーバーが 1 つのコンテンツタイプのみのリクエストを確実に受け取れるように残りのコンテンツタイプヘッダーがある場合は削除してください。
バイパスされる可能性のあるリクエストをブロックするには、ルールを HTTP.REQ.HEADER (「content-type」) .COUNT.GT (1) ‘、プロファイルを appfw_block とするWeb App Firewall ポリシーを追加します。
Content-Type ヘッダーなしでリクエストが受信された場合、またはリクエストに Content-Type ヘッダーに値がない場合、Web App Firewall は設定された RequestContentType 値を適用し、それに応じてリクエストを処理します。
コマンドラインインターフェイスを使用してデフォルトの応答コンテンツタイプを設定するには
コマンドプロンプトで、次のコマンドを入力します。
set appfw profile <name> -responseContentType <type>
save ns config
例
次の例では、「text/html」コンテンツタイプを指定されたプロファイルのデフォルトとして設定しています。
set appfw profile profile1 -responseContentType "text/html"
save ns config
<!--NeedCopy-->
コマンドラインインターフェイスを使用してユーザー定義のデフォルト応答コンテンツタイプを削除するには
コマンドプロンプトで、次のコマンドを入力します。
unset appfw profile <name> -responseContentType <type>
save ns config
例
次の例では、指定されたプロファイルのデフォルトのコンテンツタイプである「text/html」の設定を解除して、タイプを「application/octet-stream」に戻せるようにします。
unset appfw profile profile1 -responseContentType "text/html"
save ns config
<!--NeedCopy-->
コマンドラインインターフェイスを使用してコンテンツタイプを許可コンテンツタイプリストに追加するには
コマンドプロンプトで、次のコマンドを入力します。
bind appfw profile <name> -ContentType <contentTypeName>
save ns config
例
次の例では、指定したプロファイルの許可コンテンツタイプリストに「text/shtml」コンテンツタイプを追加します。
bind appfw profile profile1 -contentType "text/shtml"
save ns config
<!--NeedCopy-->
コマンドラインインターフェイスを使用して、許可されているコンテンツタイプリストからコンテンツタイプを削除するには
コマンドプロンプトで、次のコマンドを入力します。
unbind appfw profile <name> -ContentType <contentTypeName>
save ns config
例
次の例では、指定されたプロファイルの許可コンテンツタイプリストから「text/shtml」コンテンツタイプを削除します。
unbind appfw profile profile1 -contentType "text/shtml"
save ns config
<!--NeedCopy-->
URL エンコードされたコンテンツタイプとマルチパートフォームのコンテンツタイプを管理
NetScaler Web App Firewallでは、フォームのURLエンコードおよびマルチパートフォームのコンテンツタイプを構成できるようになりました。コンテンツタイプの設定は XML および JSON リストに似ています。構成に基づいて、Web App Firewall はリクエストを分類し、URL エンコードされたコンテンツタイプやマルチパートフォームのコンテンツタイプがないかを検査します。
Web App Firewall プロファイルを Urlencoded コンテンツタイプと Multipart-Form コンテンツタイプで構成するには、 コマンドプロンプトで次のように入力します。
bind appfw profile p2 -contentType <string>
例:
bind appfw profile p2 -contentType UrlencodedFormContentType
bind appfw profile p2 -ContentType appfwmultipartform
GUI を使用してデフォルトコンテンツタイプと許可コンテンツタイプを管理するには
- セキュリティ > Web App Firewall > プロファイルに移動します。
- 詳細ウィンドウで、構成するプロファイルを選択し、[ 編集] をクリックします。「 Web App Firewall プロファイルの設定 」ダイアログ・ボックスが表示されます。
- 「 Web App Firewall プロファイルの設定 」ダイアログ・ボックスで、「 設定 」タブをクリックします。
- [ 設定 ] タブで、[コンテンツタイプ] 領域まで半分ほど下にスクロールします。
- コンテンツタイプエリアで、デフォルトのリクエストまたはレスポンスのコンテンツタイプを設定します。
- デフォルトのリクエストコンテンツタイプを設定するには、使用するコンテンツタイプの MIME/タイプ定義をデフォルトリクエストテキストボックスに入力します。
- デフォルトのレスポンスコンテンツタイプを設定するには、使用するコンテンツタイプの MIME/タイプ定義をデフォルトレスポンステキストボックスに入力します。
- 新しい許可コンテンツタイプを作成するには、「 追加」をクリックします。「 許可されたコンテンツタイプの追加 」ダイアログ・ボックスが表示されます。
- 既存の許可されているコンテンツタイプを編集するには、そのコンテンツタイプを選択し、「 開く」をクリックします。「 許可されたコンテンツタイプの変更 」ダイアログ・ボックスが表示されます。
- 許可されるコンテンツタイプを管理するには、「許可されたコンテンツタイプを管理」をクリックします。
- 新しいコンテンツタイプを追加するか、既存のコンテンツタイプを変更するには、[追加] または [開く] をクリックし、[ 許可されたコンテンツタイプの追加 ] または [ 許可されたコンテンツタイプの変更 ] ダイアログボックスで、次の手順を実行します。
-
「有効」チェック・ボックスを選択または選択解除して、コンテンツ・タイプを許可するコンテンツ・タイプのリストに含めたり、リストから除外したりします。
-
コンテンツタイプテキストボックスに、追加するコンテンツタイプを説明する正規表現を入力するか、既存のコンテンツタイプ正規表現を変更します。
コンテンツタイプは、MIME タイプの説明とまったく同じようにフォーマットされます。
注:
許可されるコンテンツタイプリストには、任意の有効な MIME タイプを含めることができます。多くの種類のドキュメントにはアクティブなコンテンツが含まれている可能性があり、したがって悪意のあるコンテンツが含まれている可能性があるため、このリストに MIME タイプを追加する場合は注意が必要です。
-
この特定の MIME タイプを許可コンテンツタイプリストに追加した理由を説明する簡単な説明を入力してください。
-
「 作成」または「OK」 をクリックして変更を保存します。
-
- 「 閉じる 」をクリックして「許可されたコンテンツタイプの管理」ダイアログ・ボックスを閉じ、「 設定 」タブに戻ります。
- [OK] をクリックして変更を保存します。
NetScaler GUIを使用してURLエンコードおよびマルチパートフォームのコンテンツタイプを管理するには
- セキュリティ > Web App Firewall > プロファイルに移動します。
- 詳細ウィンドウで、構成するプロファイルを選択し、[ 編集] をクリックします。
- 「 Web App Firewall プロファイルの設定 」ページで、「 **詳細設定」セクションの「プロファイル設定** 」を選択します。
-
「 検査済みコンテンツタイプ 」セクションで、次のパラメータを設定します。
- アプリケーション/x-www-フォーム-URLエンコード。チェックボックスを選択して、URL エンコードされたコンテンツタイプを検査します。
- マルチパート/フォームデータ。チェックを選択すると、マルチパートフォームのコンテンツタイプが検査されます。
- [OK] をクリックします。
この記事の概要
- コマンドラインインターフェイスを使用してデフォルトのリクエストコンテンツタイプを設定するには
- コマンドラインインターフェイスを使用してユーザー定義のデフォルトリクエストコンテンツタイプを削除するには
- コマンドラインインターフェイスを使用してデフォルトの応答コンテンツタイプを設定するには
- コマンドラインインターフェイスを使用してユーザー定義のデフォルト応答コンテンツタイプを削除するには
- コマンドラインインターフェイスを使用してコンテンツタイプを許可コンテンツタイプリストに追加するには
- コマンドラインインターフェイスを使用して、許可されているコンテンツタイプリストからコンテンツタイプを削除するには
- URL エンコードされたコンテンツタイプとマルチパートフォームのコンテンツタイプを管理
- GUI を使用してデフォルトコンテンツタイプと許可コンテンツタイプを管理するには
- NetScaler GUIを使用してURLエンコードおよびマルチパートフォームのコンテンツタイプを管理するには