私は、csrf攻撃からの保護のためにDjangoのcsrfトークンを使用するDjangoサイトを持っています。フォームの1つは、ログインしていない人を含め、一般の人がアクセスできます。
Csrfトークンは、クロスドメインリクエストに対する保護を提供することになっています。
編集:(私のコメントからの引用)「しかし、承認を必要とせずに許可された投稿リクエストの場合、csrfは些細なスパムフィルターに勝るものはありません(captchaはここでうまくいくでしょう)。認証をまったく必要としないページにCSRFトークン(たとえば30分後に期限切れ)を含めます(ただし、私のサイトはそれを行っているので、最初にこの投稿を作成しました)」
また、この場合、ブラウザのjsコンソールでそのページをフェッチし、特定のxpathを介してcsrfトークンを取得し、そのcsrfを使用して任意のデータを投稿することができます。また、手順は簡単に再現でき、サイトに対して特定の攻撃を設計できます。その場合、Djangoサイトでは、毎回「csrfmiddlewaretoken」以外のcsrfトークンが見つかります(reddit、pinterestなどのサイトが含まれます)。
私が見る限り、少し難しくすることを除けば、csrfトークンはあまり役に立ちませんでした。
私が欠けている側面はありますか?私の実装は間違っていますか?そして、私が正しければ、csrfトークンをhtmlソース(特に認証を必要としないもの)で飛ばすのはばかげていますか?