クロスサイトリクエストフォージェリ (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 サーバー上のリソースを識別します(例: /adminui や/contentspace)。 一部のリソースでは、外部のサイトからリクエストがアプリケーションにアクセスすることができます。こうしたリソースは、許可リスト登録済み URI と見なされます。AEM 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 サーバーを再起動します。