CSRFスパンは偽造を要求する。

1307 ワード

CSRF(Cross-Stite Request Forgry)スパンは駅をまたいで偽造を要求します。
一つのウェブサイトAからウェブサイトBへの要求が開始され、この要求は偽装されたものであり、偽装操作が達成された目的は、要求がウェブサイトBから発信されたように見えること、つまり、Bサイトがあるサーバ側に、Aサイトから発起されたのではなく、この要求が自分のサイトから発起されたものだと誤解させることである。もちろん、お願いは普通悪意です。
Bサイトが銀行のウェブサイトであると仮定して、振替担当のHTTPインターフェースを提供します。例えば、http://www.b.com/transfer?amount=100&to=andyは100元をandyに転送します。
通常は、ユーザーがBサイトに登録し、振替操作を行い、このHTTPインターフェースに要求を送信します。要求側と受信者は同じドメインにいます。この時、ブラウザはCookie情報を要求にまとめて置くことができます。Bウェブサイトのサービス端末はCookie情報に基づいてユーザーの検証を行います。認証が通過してから正しい応答ができます。例えば、送金操作です。
悪意のある場合、あるハッカーサイトAにはいくつかの誘惑画像が置かれています。コードは[ ...(image-87f82e-1516932812538)]です。ユーザーはウェブサイトAを開くと、自動的にBサイトの振込インターフェースに要求を送ります。しかし、このとき、要求側Aと受信側Bは同じドメインではなく、Cookieはドメインをまたいで送信することができません。Cookie情報がなく、サーバはアクセスを拒否します。安全状況
安全じゃない!!この時、ユーザがBサイトにログインしていて、まだ退出していない場合、Cookieはすでに発生しています。ブラウザは要求されたドメイン名がwww.b.comであることを見ると、クライアントのBサイトに保存されているCookieを添付して送ることになります。これにより、サーバは同じドメインアクセスであると誤解し、認証を通過し、変換操作が行われました。
まとめ:一回のCSRF攻撃を完成するには、被害者は順番に二つのステップを完成しなければなりません。
  • は、信頼されたウェブサイトBにログインし、ローカルでCookieを生成する。
  • Bに登らない場合、危険サイトAにアクセスする。
  • 防御措置
    Refererフィールドをチェック
    HTTPヘッダにRefererフィールドがあります。実際にどのアドレスから来ているかを示します。
    検査tokenを追加
    Cookieを使用するのではなく、このtokenをフォームに追加し、例えば乱数をバックエンドで確認する。
    CSRF(駅をまたいで偽造を要求する)に対する理解は、駅をまたいで偽造を要求する。