クロスサイトリクエストフォージェリ (CSRF) とは、有効なユーザーのブラウザーが、iFrame を介して悪意のあるリクエストを送信するために使用される、Web サイトの脆弱性です。 ブラウザーはドメイン単位で cookie を送信するので、ユーザーがアプリケーションにログインすると、ユーザーのデータに問題が生じる場合があります。
例えば、ブラウザーで管理コンソールにログインする場合を考えます。 リンクを含む電子メールメッセージが届きます。 リンクをクリックすると、ブラウザーに新しいタブが開きます。 開いたページには、認証済みのAEM forms セッションの cookie を使用してFormsサーバーに悪意のあるリクエストをおこなう、非表示の iFrame が含まれています。 User Management は有効な Cookie を受け取るので、リクエストを渡します。
リファラー:リクエストの発信元のソースページのアドレス。例えば、site1.comの Web ページには、site2.comへのリンクが含まれています。 このリンクをクリックすると、site2.comにリクエストが投稿されます。 このリクエストのリファラーはsite1.comです。リクエストは、ソースがsite1.comのページからおこなわれるからです。
許可リストに加えるURI: URI は、リクエストされるForms Server 上のリソースを識別します(例: /adminui または/contentspace)。 一部のリソースでは、外部のサイトからリクエストがアプリケーションにアクセスすることができます。こうしたリソースは、許可リスト登録済み URI と見なされます。Formsサーバーは、許可リストに加えるされた URI からリファラーチェックを実行しません。
null リファラー: 新しいブラウザーウィンドウまたはタブを開き、アドレスを入力して Enter キーを押すと、リファラーが null になります。 リクエストはまったく新しく、親 Web ページからのリクエストではないので、リクエストのリファラーはありません。 Formsサーバーは、次の場所から null リファラーを受け取ることができます。
SOAP および REST エンドポイントで null リファラーを許可します。 また、すべての URI ログインページ( /adminui、/contentspace など)で null リファラーを許可し、対応するマッピングされたリソースも許可します。 例えば、/contentspace にマッピングされたサーブレットは/contentspace/faces/jsp/login.jspです。これは null リファラー例外である必要があります。 この例外は、Web アプリケーションでGETのフィルタリングを有効にした場合にのみ必要です。 null リファラーを許可するかどうかをアプリケーションで指定できます。 AEM Forms の堅牢化とセキュリティの「クロスサイトリクエストフォージェリー攻撃からの保護」を参照してください。
許可されているリファラーの例外: 許可されるリファラー例外は、許可されたリファラーのリストのサブリストで、このリストからのリクエストはブロックされます。 許可されているリファラーの例外は、Web アプリケーションに固有のものです。許可されたリファラーのサブセットで特定の Web アプリケーションを呼び出すことを許可しない場合は、許可されたリファラーの例外を使用してリファラーをできまブロックリストに加えるす。 許可されるリファラーの例外は、アプリケーションの web.xml ファイルで指定します。 (ヘルプとチュートリアルページの AEM Forms の堅牢化とセキュリティの「クロスサイトリクエストフォージェリ―攻撃からの保護」を参照してください)。
AEM Formsはリファラーフィルタリングを提供し、CSRF 攻撃の防止に役立ちます。 リファラーフィルタリングの仕組みを次に示します。
Formsサーバーは、呼び出しに使用される HTTP メソッドを確認します。
Formsサーバーは、要求された URI が許可リストに加えるされているかどうかを確認します。
リクエストにリファラーがある場合、サーバーは許可されているリファラーであるかどうかを確認します。 許可されている場合、サーバーはリファラーの例外を確認します。
リクエストにリファラーがない場合、サーバーは null リファラーが許可されているかどうかを確認します。
Configuration Manager を実行すると、デフォルトのホストと IP アドレス、またはFormsサーバーが「許可されているリファラー」リストに追加されます。 このリストは、管理コンソールで編集できます。
管理コンソールで、設定/User Management/設定/許可されているリファラー URL の設定をクリックします。許可されているリファラーリストがページの下部に表示されます。
許可されたリファラーを追加するには:
0
(ゼロ)を入力した場合、そのサーバー上のすべてのポートが有効になります。特定のポート番号を入力して、そのポートのみを有効にすることもできます。許可されているリファラーリストからエントリを削除するには、リストから項目を選択して、「削除」をクリックします。
許可されているリファラーリストが空の場合、CSRF 機能は動作を停止し、システムのセキュリティが低下します。
「許可されているリファラー」リストを変更した後、AEM Forms Server を再起動します。