問題タブ [django-csrf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
529 参照

django - Django での CSRF 保護

django での CSRF 保護については、何もわかりません。たとえば、悪意のあるサイトがあります。このサイトからcsrfで保護されたURLにget-requestを送信し、ページを解析してcsrf値を取得し、この値で投稿する問題は何ですか?

0 投票する
1 に答える
9803 参照

django - @csrf_exempt を使用し、同じビューで CSRF トークンを作成する

POSTサードパーティのサーバーからの を期待しています。@csrf_exemptサードパーティ サーバーからの投稿を許可するには、デコレータを使用する必要があることを理解しています。Ubuntu 12.04 で Django 1.4 と Python 2.7 を使用しています。

ここで、私のビューは、ユーザーが入力するフィールドと、元のPOST. したがって、最初POSTの は 2 番目のPOST.

2 つ目POSTは、サーバーからサーバー上の別のビューに送信されます。CSRFフォームのトークンを生成する方法を見つけようとしています。

ドキュメントで読んだことを正確に実行しようとしています。

views.py からの私のコード:

テンプレート側は今何をしているの?!? 繰り返しますが、ドキュメントから、次のことを行う必要があると思いました。

POSTサードパーティのサーバーから実行して、これをテストします。CSRF有効なトークンのように見えるものが完全に生成されたフォームが表示されることがあります。

時々、次のような失敗が見られます。

その後、最終的にこのエラーが発生します。

エラーを受け取ったらCSRF verification failed、Cookie をクリアして最初からやり直すまで、このエラーが発生し続けます。

誰が私が間違っているのか教えてもらえますか? CSRFトークンの生成方法に関係があることがわかります。ドキュメントの内容に基づいてプロセスがどのように機能するかわかりません。c私の見解では何ですか?情報を入力して に渡す空の辞書render_to_response。わかりましたが、それはテンプレートでどのように使用されていますか?

私のテンプレートには次のようなものがあります:

そうでない場合、なぜですか?Django は、これにトークンcが含まれていることをどのように認識しますか?CSRF

どんな助けでも大歓迎です。

0 投票する
2 に答える
1883 参照

jquery - Django + jQuery: 複数の同時リクエストで CSRF 検証が失敗する理由

次の状況に遭遇しました (Django1.4 と jQuery 1.7.1 を使用) を理解したいと思います: jQuery の「ajax」関数を使用してフォームを送信し、この要求が完了する前に、同じフォームを送信する別の要素をクリックしますが、 jQuery の「送信」機能を使用します。私が受け取る応答 - 403、CSRF 検証に失敗しました。もちろん、このエラーを防ぐには、複数の同時送信を無効にするだけで十分ですが (それらは単独で正常に動作します)、特定のエラーの原因を理解するのには役立ちません。

誰でもこれを説明できますか?csrf トークンはセッションごとに 1 回生成されるため、後者のリクエストでは何らかの csrf の不一致になることはありません。これは、jQuery がリクエストを処理する方法と関係がありますか?

0 投票する
2 に答える
3467 参照

django - これが Django の CSRF 保護のしくみですか?

Cookie、CSRF、および Django (1.4 を使用) の初心者であるため、これがどのように機能するかを理解できます。どこが間違っているかを修正してください...

以下は、django.middleware.csrf.CsrfViewMiddleware が MIDDLEWARE_CLASSES タプルに含まれている場合に適用されます。

POST フォームにcsrf_tokenタグが含まれ、関連するビューがRequestContextテンプレートに渡される場合、ページをリクエストすると、Django が英数字文字列を含む非表示のフォーム フィールドを含むことを意味します。また、Django は、名前が に設定されcsrftoken、値が同じ英数字の文字列に設定された Cookie をブラウザに返します。

フォーム送信を受信すると、Django は非表示のフォーム フィールドからの英数字文字列の値と、ブラウザーから受信した csrftoken Cookie が一致することを確認します。それらが一致しない場合、403 応答が発行されます。

CSRF 攻撃は、iframe を含む悪意のある Web サイトの形で行われる可能性があります。iframe には、POST フォームといくつかの JavaScript が含まれています。フォームのaction属性は、私の Django サイトを指しています。フォームは私のサイトで厄介なことをするように設計されており、iframe が読み込まれると JS がフォームを送信します。

ブラウザーはcsrftoken、フォーム送信のヘッダーに Cookie を含めます。ただし、フォームには一致する英数字文字列を含む隠しフィールドが含まれないため、403 が返され、攻撃は失敗します。iframe JS が Cookie にアクセスして正しい非表示のフォーム フィールドを作成しようとすると、ブラウザーはそれを阻止します。

これは正しいです?

0 投票する
1 に答える
1884 参照

django - POST 403 バックエンドに Django を使用する Chrome 拡張機能は禁止されています

以前に Chrome 拡張機能を開発したことはなく、現在、Django を利用したアプリ用の Chrome 拡張機能 (リンク送信機能付き) に取り組んでいます。拡張機能を使用してリンクを送信しようとすると、次のエラーが発生します。

これは、postdata JSON で csrfmiddlewaretoken を渡すことで解決できますが、明らかに私にはできません

Chrome拡張機能のhtmlファイルで。Django から Chrome 拡張機能の JavaScript に csrf_token をどのように渡しますか? または、この問題を回避する他の方法はありますか? Chrome 拡張機能の JS コードの関連部分は次のとおりです。

0 投票する
0 に答える
149 参照

django - CSRFの受信に失敗しました。リクエストは中止されました

エラー応答ページのアドバイスに従いましたが、それでも機能しません。これが私のコードです。

views.py

icecream.html(テンプレート)

urls.py

settings.py(関連セクション)

私は学習モードになっているので、これは単なる内部サイトであり、ローカルホストを使用してアクセスしています。私が学んでいる本の他の章で、私はこれまでこの問題を経験したことがありません。フォームと投稿を扱うのはこれが初めてです。私はこのサイトで多くの回答された質問を見てきましたが、何も役に立たないようです。すべての助けに感謝します。

0 投票する
1 に答える
3562 参照

django - Djangocsrfトークン

views.py

上記のようなビューでcsrfトークンを生成するフォームにcsrfトークンを追加しようとしていますが、csrf_token値は、文字列の代わりに上記のようなプロキシオブジェクトを提供します。django1.3を使用しています。ヘルプ。

0 投票する
1 に答える
1892 参照

django - djangoで散発的な403「CSRF FAILURECSRF Coo​​kieが設定されていません」エラー

外部の世界に公開され始めたばかりの小さなサイトがあります。ほとんどの場合、非常にうまく機能していますが、フォームの 1 つから「CSRF FAILURECSRF cookie が設定されていません」というメッセージとともに 403 エラーが発生することがあります。フォームには間違いなく が{% csrf_token %}含まれており、ミドルウェアは次のようになります。

このフォームはほとんどの人にとって問題なく機能しますが、1 日に 1 回程度、エラー ケースに関する電子メールが届きます。電子メールには、次のような実際のリクエストが含まれています (プライベート データを非表示にするために残りの POST データを削除しましたが、csrfmiddleware トークンは残しました)。

CSRF_COOKIE は csrfmiddlewaretoken と一致しません。これが問題の原因であると私は推測していますが、一部の送信ではこれらがどのように同期していないかを理解できません。このページは、いくつかのフィールドしかない非常に単純なフォームです。

どこを見ればいいですか?Apache経由でmod_wsgiを使用して、CentOSで最新のDjango 1.4.1を実行しています。

編集:成功したリクエストと比較して奇妙に見える唯一の他のことは、ここではCOOKIES:{}セクションが空であることです.メタセクション?

ご協力いただきありがとうございます!

ブランドン

0 投票する
2 に答える
1593 参照

ajax - Djangoミドルウェアはajaxを使用してHTTPSPOSTで403エラーをスローします

私はここの多くの部分(Django / Ajaxなど)に慣れていないので、高レベルのCSFRの図は理解していますが、詳細を完全に把握しているわけではありません。

渡されるデータ量が多いため、リクエストをGETからPUTに変換する必要がありました。高レベルでは、HTTPSを介してdjangoアプリに対してAJAXPOSTAPI呼び出しを行っています。ページが提供されているのと同じドメインに対して呼び出しが行われます。

ただし、「CSRFcookieが設定されていません」というエラーが発生し続けます。

Django1.4を使用しています

CSRF保護を乗り越えるために、他の投稿で言及されているX-CSFRTokenをヘッダーに含め、投稿されたデータに{{csrf_token}}タグを含めました。ただし、そのタグがトークンに置き換えられているようには見えません。X-CSFRToken値は、要求時にNULLとして送信されます。なぜ設定されないのかわからない。

ajaxSetupでPOSTの前にCookieを取得するため、ページビューでensure_csrf_cookie()を使用する必要がないという印象を受けていますが、それも試しました。

私が間違っていることを考えますか?

関連コード:

0 投票する
2 に答える
315 参照

django - Django BookOUTDATECSRF保護

こんにちは私はdjangoを使用して一部のユーザーを登録しようとしている初心者です。DjangoBookを読んでいて、登録に関する章を読んでいます。http://www.djangobook.com/en/2.0/chapter14/指示私はこれを取得します

禁止(403)

CSRF検証に失敗しました。リクエストは中止されました。ヘルプ

失敗の理由:

一般に、これは、本物のクロスサイトリクエストフォージェリがある場合、またはDjangoのCSRFメカニズムが正しく使用されていない場合に発生する可能性があります。POSTフォームの場合、次のことを確認する必要があります。

Django設定ファイルにDEBUG=Trueがあるため、このページのヘルプセクションが表示されます。これをFalseに変更すると、最初のエラーメッセージのみが表示されます。

CSRF_FAILURE_VIEW設定を使用して、このページをカスタマイズできます。

{%csrf_token%}テンプレートタグをpostタグ内に配置しても、このエラーが発生します。ありがとう

フォーム