3.5 クロスサイト要求偽造攻撃からの保護

クロスサイト要求偽造(CSRF)攻撃とは、ユーザーに対する Web サイトの信頼を悪用して、ユーザーが許可していないコマンドを知らないうちに送信することです。この攻撃は、Web ページ上に配置したリンクまたはスクリプトや、電子メールメッセージに含めた URL を介して、既にユーザーの認証が済んでいる別のサイトへのアクセスを達成するという形で行われます。

例えば、管理者は、他の Web サイトを閲覧しながら管理コンソールにログインすることがあります。CSRF 攻撃者は、このような状況を狙って、閲覧されるサイトの Web ページに含まれている HTML img タグの src 属性などに、攻撃対象 Web サイト内のサーバー側スクリプトを参照する URL を記述しておきます。Web ブラウザーに備わっている Cookie ベースのセッション認証メカニズムにより、攻撃者の Web サイトは正当なユーザーを装って、攻撃対象のサーバー側スクリプトに悪意ある要求を送信することができます。その他の例については、https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)#Examples を参照してください。

CSRF に共通の特性を次に示します。
  • ユーザーの ID を信頼したサイトに関与する。

  • その ID に対するサイトの信頼を利用する。

  • ユーザーのブラウザーをだましてターゲットサイトに HTTP 要求を送信させる。

  • 副次的な悪影響のある HTTP 要求に関与する。

LiveCycle では、リファラーフィルター機能を使用して CSRF 攻撃を防ぎます。この節では、次の用語を使用してリファラーフィルターメカニズムについて説明します。

  • 許可されているリファラー:リファラーは、要求をサーバーに送信するソースページのアドレスです。JSP ページまたはフォームの場合、リファラーは一般的にブラウザー履歴の前のページになります。画像のリファラーは、通常、画像が表示されるページです。許可されているリファラーリストにリファラーを追加すると、サーバーリソースにアクセスできるリファラーを識別できます。

  • 許可されているリファラーの例外:許可されているリファラーリストの特定のリファラーに対して、アクセス範囲を制限することができます。この制限を適用するには、そのリファラーのパスを、許可されているリファラーの例外リストに個別に追加します。許可されているリファラーの例外リストに含まれるパスから要求が発行された場合、LiveCycle サーバー上のリソースは呼び出されません。許可されているリファラーの例外リストは、特定のアプリケーションに対して定義できます。また、すべてのアプリケーションに適用される例外のグローバルリストを使用することもできます。

  • 許可されている URI:リファラーヘッダーを確認ぜずに提供されるリソースのリストです。例えば、サーバーの状態に変更を加えることのない、リソースのヘルプページをこのリストに追加できます。許可されている URI リストのリソースは、リファラーが何であっても、リファラーフィルターでブロックされることはありません。

  • ヌルリファラー:関連付けられていない、または送信元が親 Web ページではないサーバー要求は、ヌルリファラーからの要求と見なされます。例えば、新しいブラウザーウィンドウを開き、アドレスを入力して、Enter キーを押すと、サーバーには null のリファラーが送信されます。Web サーバーに HTTP 要求を送信するデスクトップアプリケーション(.NET または SWING)も、ヌルリファラーをサーバーに送信します。