私は、ユーザー登録のためにユーザーデータがPOSTメソッドで送信されるDjangoを使用してモバイルアプリのバックエンドを開発しています。DjangoはミドルウェアとしてCSRFセキュリティを提供しているため。ここでの私の問題は、フロントエンドがある場合、JinjaコードでCSRFトークンを有効にできることです{% csrf_token %}
が、これはバックエンドであるため、この問題を解決する方法です
これらのタイプの攻撃を防ぐには、次の2つのことを行う必要があります。1GET、HEAD、OPTIONSなどの「安全な」HTTP操作を使用してサーバー側の状態を変更できないようにします。2 POST、PUT、PATCH、DELETEなどの「安全でない」HTTP操作には、常に有効なCSRFトークンが必要であることを確認してください。SessionAuthenticationを使用している場合は、POST、PUT、PATCH、またはDELETE操作に有効なCSRFトークンを含める必要があります。AJAXリクエストを行うには、Djangoのドキュメントで説明されているように、HTTPヘッダーにCSRFトークンを含める必要があります。
このリンクを確認してください。それはあなたのアプローチがどうあるべきかを正確に説明しています。
基本的に、POSTリクエストにcsrfを含める場合は、ヘッダーでcsrfトークンを送信する必要があります。ただし、認証されていないリクエストにはcsrfトークンを要求しません。
まだ使用していない場合は、Django RestFrameworkを使用してAPIを作成することをお勧めします
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加