2

Django のコメント フレームワークは、ブログや記事の下で一般的に見られるような匿名のパブリック コメント用に設計されていることを理解しています。つまり、誰でもコメントを投稿できます。

ログインしたユーザーのみがコメントを表示できるようにするために、コメント フレームワークを使用しています。私がしたことは、、、およびフィールドを変更してform.html非表示にしたことです(セキュリティ フィールドはそのまま残します)。そのため、ほとんどの場合、ユーザーにはフィールドしか表示されません。Django には、タイムスタンプ チェック、ハニーポット フィールド、二重投稿防止機能などの優れたセキュリティ機能が既に備わっているため、Django のコメントを使用したいと思いました。ユーザー情報はRequestContextから取得され、 or vsとは反対にコメントに関するユーザー情報を取得します。nameURLemailcommentrequest.user comment.user.get_full_namecomment.namecomment.user.emailcomment.email

また、Django の CSRF 保護についても読み始めました。ほとんどの場合、ハッカーがログインしているユーザーの銀行口座から Cookie などを使用して送金することを、CSRF がどのように防ぐかについて話されています。

私の場合、CSRF は人々が他のユーザーとして投稿することを妨げますか? 言い換えれば、ハッカーは独自の POST フォームを作成し、別のフォームに投稿してuser.pk他人を偽装することはできますか?

4

1 に答える 1

3

あなたの質問に直接答えるには -- いいえ、CSRF では、ハッカーが別のユーザーになりすましてコメントを送信することは許可されていません。攻撃者が実際のログイン ユーザーにコメントを送信させる可能性があります。

CSRF は、リソースへのアクセス許可を持たない誰かが、アクセス許可を持っている誰かをだましてアクセスさせる攻撃です。

したがって、たとえば、CSRF 保護により、誰かがユーザーを騙して、スパムやマルウェアのリンクを含むコメントを投稿することを防ぐことができます。または、ユーザーを騙して作成するリクエストが不正な形式である、Web サーバーをクラッシュさせる、検証プロセスをすり抜けてデータベースに損害を与える、または他の方法でサイトを侵害することを意図したコードが含まれている可能性があります。

したがって、CSRF 保護がなければ、理論的には、ログインしているユーザーをだまして、実際には書いていないコメントを送信させることができます。

CSRF 保護により、Django は、サイトの実際のフォームから送信された実際のデータではないことを検出し、拒否します。

于 2012-04-03T09:13:54.397 に答える