1

私は Django 1.4 チュートリアルのパート 4 を完了したところですが、彼らは CSRF と一般的なビューを取り込んで私を混乱させているに違いありません。

さて、一般的なビューが得られましたが、CSRF 保護で何が起こっているのかわかりません。

これは私が考えていることです: CSRF トークンは、アプリで使用されるモジュールによって生成されたハッシュ/キーであり、ログインしている場合はログインしているユーザーです。ハッシュし、フォームで送信されたものと比較して、誰も覗き見していないことを確認しますか? これは完全に間違っていますか?

チュートリアル中に Django マニュアルの残りの部分を使用しましたが、これは私が読んだ中で最も紛らわしいマニュアル ページです。

4

1 に答える 1

2

Web ブラウザーの微妙な脆弱性に対処するため、混乱を招きます。

2 つのサイトがあるとしましょう: site.com と Evil.com。次に、evil.com の所有者は、site.com Web サイトの構造を知っていれば (それを使用できれば簡単です)、それを対象とするフォームをセットアップできます。

<form action="http://target.com/my_account/_delete" method="POST">
    <input type="submit" value="Click Here for candy"></input>
</form>

それをクリックして site.com にログインした人は、リンクされたアクションを即座にトリガーします (この場合は、自分のアカウントを破棄します)。

csrf トークンの考え方は、正当な形式が次のようになるというものです。

<form action="http://target.com/my_account/_delete" method="POST">
    <input type="hidden" name="csrf_token" value="AEyaF8af8AIHJFA0L"></input>
    <input type="submit" value="Don't click this unless absolutely sure!"></input>
</form>

また、この値はユーザー固有のものであり、Web サイトでのみ認識および表示されるため、ユーザーは安全であり、最初に適切なページを通過しないとアカウントを削除できません。攻撃者のページはこの値を知らないためです。 .

うまくいけば、これはより明確です。

于 2013-01-28T00:07:04.497 に答える