構成マネージャー - サイト間スクリプト保護
構成マネージャーの「サイト間スクリプト保護」ノードを使って、
サイト間スクリプト保護機能を使用可能または使用不可にします。
この機能を使用可能にすると、
不許可に指定されている属性またはストリングを含むユーザー要求は、
いずれもこの機能によって拒否されます。
許可しない属性およびストリングは、構成マネージャーのこのノードで指定することができます。
特定のコマンドに関して指定した属性の値に禁止ストリングを含めることによって、
そのコマンドをサイト間スクリプト保護から除外することもできます。
サイト間スクリプト保護フィーチャーは、デフォルトでは使用不可になっています。
警告: サイト間スクリプト保護は、
構成に基づくコマンドの実行を制限するという点で、制限的なフィーチャーであると言えます。
そのフィーチャーは禁止として定義されている属性またはストリングを検査しないので、
これを構成するときは、コマンドが禁止属性を使用しないようにしてください。
また、通常は、禁止文字がコマンドに渡されないようにしてください。
このフィーチャーを構成するときは、特別な注意を払ってください。
この機能を使用可能にするには、次のようにします。
- 構成マネージャーを呼び出して、次のようにインスタンスの「サイト間スクリプト保護」ノードに進みます。
WebSphere Commerce > host_name > インスタンス・リスト > instance_name > インスタンス・プロパティー
> サイト間スクリプト保護
- 「一般」タブを使って、以下のようにサイト間スクリプト保護機能をアクティブにします。
- 使用可能をクリックします。
- WebSphere Commerce コマンドで不許可にする属性を追加するには、
「禁止属性」テーブルで右マウス・ボタン・クリックし、「行の追加」を選択します。
不許可にしたい属性を入力します。
行ごとに 1 つの属性を指定できます。
- 「禁止属性」テーブルから属性を除去するには、テーブルの中の、その属性を含む行を選択し (強調表示の状態)、
右マウス・ボタン・クリックして、行の削除を選択します。
- WebSphere Commerce コマンドで不許可にするストリングを追加するには、
「禁止文字」テーブルで右マウス・ボタン・クリックし、行の追加を選択します。
不許可にしたいストリングを追加します。
1 行に 1 ストリングのみ指定できます。
- 「禁止文字」テーブルから文字を除去するには、「禁止文字」テーブルの中の、その文字を含む行を選択し (強調表示の状態)、
右マウス・ボタン・クリックして、行の削除を選択します。
注: デフォルトでは、
以下のストリングが禁止文字フィールドで指定されています。
これらのストリングは、
不正なサイト間スクリプト・アタックにおいてスクリプト・タグとして最も一般的に使用されるものです。
- "<SCRIPT"
- "<SCRIPT"
- "<%" および "<%"
- 「拡張」タブを使用し、以下のように、
特定のコマンドに関して指定した属性の値に禁止ストリングを含めることによって、
その WebSphere Commerce コマンドをサイト間スクリプト保護から除外します。
- コマンド・リスト・ボックスからコマンドを選択します。
- 「例外属性のリスト」ウィンドウで、禁止文字が許可される属性をコンマで区切ったリストを入力し、
追加をクリックします。
- コマンドをその属性とともに除去するには、「例外コマンドのリスト」ウィンドウでそのコマンドを選択して、
除去をクリックします。
属性を選択して除去をクリックすれば、
コマンドの特定の属性も除去することができます。
- 変更を構成マネージャーに適用するには、
「適用」をクリックします。
- インスタンスの構成の更新が正常に行われると、
正常な更新を示すメッセージが表示されます。
- WebSphere Application Server 管理コンソールから WebSphere Commerce インスタンスを停止してから、
再始動する。
注:
- コマンドがサイト間スクリプト保護から除外されると、
指定した属性の値は HTML シンボル・エンコードを使用してエンコードされます。
たとえば、コマンド cmd1?user=<Thomas> は、
cmd1?user=<Thomas> とエンコードされます。
- 禁止文字フィールドにストリングを指定する場合は、次のことに留意してください。
- 特定の文字シーケンスでは、
ストリングが URL エンコード標準に従って単一文字に変換されることがあります。
たとえばストリング "<%bb" は、ストリング "<X" に変換されます。
ここで X は HEX 'bb' (10 進で 187) の16 進表記での値を持つ単一文字です。
この場合のストリング "<%bb" は、URL で渡されると、
サイト間スクリプト保護ではキャッチされないことになります。
- 特定の文字シーケンスでは、
それが URL エンコード標準に従っていないと、ストリング変換が失敗することがあります。
たとえばストリング "<%gg" の場合、
HEX 'gg' は有効な 16 進値表記ではないため、その変換は失敗することになります。
この場合のストリング "<%gg" は例外の原因になり、
サイト間スクリプト保護が使用可能かどうかにかかわらず、
そのストリングを含む URL 要求に対して無応答になります。
例: 以下の例について考慮します。
- 禁止ストリング: "<SCRIPT",
"<%"
禁止属性: mycomment, description
コマンド |
状況 |
cmd1?description=Available
... |
拒否 |
cmd2?userid=Thomas... |
受諾済み |
cmd3?mycomment=<SCRIPT>... |
拒否 |
cmd4?password=<%...%>... |
拒否 |
- cmd1 コマンドの属性 "text" に禁止ストリング ("<SCRIPT", "<%") を含め、
"txt" などの他の属性には含めない場合、
cmd1 を除外し、例外属性として "text" を指定します。
コマンド |
状況 |
cmd1?text=<SCRIPT>... |
受諾済み |
cmd1?text=<%...%>... |
受諾済み |
cmd1?txt=<SCRIPT>... |
拒否 |
cmd1?txt=<%..%>... |
拒否 |
