クロスサイトの偽造を防ぐにはどうすればよいですか?
クロスサイトリクエストの偽造、セッションライディング、ワンクリック攻撃など、さまざまな名前でも知られているクロスサイトの偽造(XSRFまたはCSRF)は、防止するのが難しいタイプのウェブサイトのエクスプロイトです。 Webブラウザをトリックして、不正なコマンドをリモートサーバーに送信するように動作します。クロスサイトの偽造攻撃は、本物の資格情報を持つWebサイトにログインしたユーザーに対してのみ動作します。その結果、ウェブサイトからのログアウトは、シンプルで効果的な予防策になる可能性があります。 Web開発者は、ランダムに生成されたトークンを使用して、このタイプの攻撃を防ぐことができますが、リファラーのチェックやCookieに依存しないようにすることができます。
「混乱した副攻撃」として知られているもののWebブラウザをターゲットにするためのクロスサイトの偽造エクスプロイトが一般的です。ユーザーに代わって行動していると信じて、ブラウザは不正なコマンドをリモートサーバーに送信するようになります。これらのコマンドは、Webページのマークアップコードの一見無邪気な部分の中に隠すことができます。ImageファイルをダウンロードしようとしているSerは、実際に銀行、オンライン小売業者、またはソーシャルネットワーキングサイトにコマンドを送信している可能性があります。一部のブラウザには、クロスサイトの偽造攻撃を防ぐために設計された対策が含まれており、サードパーティのプログラマーは、これらの手段を欠く拡張機能またはプラグインを作成しています。また、これらのプログラムはクロスサイトの偽造攻撃に対しても脆弱であるため、ハイパーテキストマークアップ言語(HTML)電子メールをオフにすることをお勧めします。
クロスサイトの偽造攻撃は、合法的にウェブサイトにログインしたユーザーに依存しているためです。それを念頭に置いて、このような攻撃を防ぐ最も簡単な方法の1つは、使用が完了したサイトから単純にログアウトすることです。銀行や証券会社を含む機密データを扱う多くのサイトは、一定の期間の不活動の後にこれを自動的に行います。 他のサイトは反対のアプローチを取り、ユーザーがペルシになることを許可します何日または数週間ログインした。この便利なことはありますが、CSRF攻撃にさらされます。 「このコンピューターで私を覚えておいてください」または「ログインしてください」オプションを探して無効にし、セッションを完了したら、必ずログアウトリンクをクリックしてください。
Web開発者にとって、クロスサイトの偽造の脆弱性を排除することは、特に挑戦的な作業になる可能性があります。 CSRFエクスプロイトが正当なユーザー資格情報を利用しており、この情報は簡単にスプーフィングできるため、リファラーとCookieの情報をチェックしても多くの保護は提供されません。より良いアプローチは、ユーザーがログインするたびに単一使用トークンをランダムに生成し、トークンをユーザーが送信した任意のリクエストに含めることを要求することです。購入や資金の送金などの重要なリクエストについては、ユーザーがユーザー名とパスワードに再び入るように要求することで、リクエストの信頼性を確保するのに役立ちます。