管理 > クロスサイトリクエストフォージェリ > クロスサイトリクエストフォージェリの予防
  
クロスサイトリクエストフォージェリの予防
PTC FlexPLM 11.0 M030 では、ほとんどのデータ改変操作に対して、クロスサイトリクエストフォージェリ (CSRF) の予防機能が追加されました。
PTC FlexPLM によって実装された解決策により、セッションを確立する際にユーザーごとに一意のトークンが生成されます。この一意のトークンは nonce と呼ばれ、ユーザーセッションに保存されています。このセッションのサーバーはデータを改変する URL を生成するたびに、CSRF_NONCE という非表示フォームフィールドに nonce を含めます。ユーザーが操作のフォームを送信すると、この非表示フィールドがサーバーに送り返され、リクエストの nonce とセッションの nonce が比較されます。nonce が見つからない場合や一致しない場合、A potential security problem was detected. Refresh the page and try again. If the problem persists, contact your administrator. というエラーでリクエストが却下されます。監査ログには、潜在的な CSRF 攻撃として検知されたイベントも記録されます。
クロスサイトリクエストフォージェリ (CSRF) 攻撃を予防するには、有効なユーザーがアプリケーション内で生成された有効なリンクをクリックした場合のみアプリケーションでデータを作成、更新、削除するリクエストを受け付け、第三者が作成しユーザーが知らずに送信した URL からは受け付けないようにします。
CSRF の防止方法はさまざまです。
一意のトークンを使用する
CAPTCHA などのチャレンジレスポンス方式を使用する
HTTP Referrer ヘッダを確認する
HTTP Origin ヘッダーを確認する
アプリケーションにアクセスする場合の最良事例を確立して使用する
CSRF 攻撃から操作を保護するには、以下の操作を行います。
操作が生成された場合、クライアントは csrf.js 内の appendNonce を使用する必要があります。
すべてのリクエストは、適切な検証が実行されるように、Main.jsp、または転送とインクルードの標準フローを経由する必要があります。たとえば、MainTemplate.jspChooser.jspMain.jsp 以外の jsp が MAINTEMPLATE 以外のページに転送を行っている場合、MAINTEMPLATE を正しく経由するようにその jsp を更新する必要があります。