問題タブ [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.
python - @csrf_exempt が Django 1.4 で機能しなくなった
Django 1.2.5 で正常に動作していた次のコードがあります。
しかし、Django 1.4 にアップグレードすると、「CSRF 検証に失敗しました」というメッセージとともに、403 禁止が発生し始めました。
@csrf_exempt デコレータが機能しないのはなぜですか?
URL の定義は次のとおりです。
django - Django-禁止(CSRF Cookieが設定されていません)
中程度のトラフィック(1日あたり約4000/5000の訪問)のDjangoWebサイトがあります。今日、settings.pyの「LOGGING」オプションを設定して「Info」レベルのメールを送信しました。すべて問題がないかどうかを確認してください...
驚いたことに、次のエラーが発生します。[Django]警告(外部IP):禁止(CSRF Cookieが設定されていません。)
このエラーを再現しようとしましたが、できませんでした。FirefoxとChromeでテストし、すべてのCookieをクリーンアップしました...すべて問題ありません。しかし、このエラーは常に異なるIPで何度も発生するため、攻撃ではないと思います...すべてのフォームに{%csrf_token%}が あり、django.middleware.csrf.CsrfViewMiddlewareはMIDDLEWARE_CLASSESで構成されています。
上記のログメッセージは、CSRF_COOKIEが空ではないことを非常に明確に示しています。私はDjango1.4を使用しています。
[更新]これらのユーザーはCookieを有効にしていないと思います...だから...問題は:Cookieを有効にしていないユーザーでCSRFを使用するにはどうすればよいですか?
python - CSRF検証に失敗しました。リクエストは中止されました
sqlite3データベースにデータを追加できる非常にシンプルなWebサイトを構築しようとしています。2つのテキスト入力があるPOSTフォームがあります。
index.html:
forms.py:
views.py:
ただし、[送信]ボタンをクリックすると、403エラーが発生します。
{% csrf_token %}
index.htmlに含めました。ただし、それがRequestContextの問題である場合、それをどこでどのように使用するかについては、私にはまったくわかりません。すべてを同じページ(index.html)で実行したいと思います。
jquery - ajaxとdjangoの投稿を含むcsrf
jquery1.7.1とdjango1.3を使用して、Webで見つけたチュートリアルコードで、ajaxを介してPOSTリクエストを作成しようとしました。
URL「/create/」はdjangoビューにマップされます
javascript関数をトリガーする送信ボタンをクリックするとcreate_note
、403エラーが発生します。csrfの問題である必要があります。
レディ関数を変更してこれを解決しようとしました
しかし、それは機能しませんでした..私はまだ得ます403 error
ajax
だから、私は呼び出しでデータを変更しようとしました
それでも403エラーが発生します。
これを修正するために何をすべきか教えてください..これについての
djangoドキュメントjQuery(document).ajaxSend(...
を見ましたが、それを使用する方法がわかりません。コード全体をjavascriptファイルにコピーする必要があります。..ここで本当に混乱しています。 。
django - Django、csrfトークン、POSTリクエストでcurlを使用する方法
私はcurlを使用してDjangoフォームの1つをテストしています。私が試した呼び出し(それぞれからのエラー、および読みやすさのための複数行にわたる):
(1):
(httpヘッダーとcsrftoken
Cookieを使用)結果として400エラーが発生し、データは返されません。
(2):
((1)と同様ですが、ヘッダープロパティ宣言にスペースがなくsessionid
、Cookieにもスペースがありません)、データが返されない同じ400エラーが発生します。
(3):
(CookieなしのhttpヘッダーのみX-CSRFToken
)エラーコード403が発生し、メッセージ:CSRFcookieが設定されていません。
フォームをcurlでテストするにはどうすればよいですか?Cookieの値とhttpヘッダー以外に考慮していない要素は何ですか?
django - POSTメソッドは常に403Forbiddenを返します
Djangoを読みました-CSRF検証が失敗し、djangoとPOSTメソッドに関連するいくつかの質問(および回答)があります。最高の答えの1つは、https://stackoverflow.com/a/4707639/755319です。
承認された回答はすべて、少なくとも3つのことを示唆しています。
- render_to_response_callの3番目のパラメーターとしてRequestContextを使用します
- POSTメソッドを使用してすべてのフォームに{%csrf_token%}を追加します
- settings.pyでMIDDLEWARE_CLASSESを確認してください
提案どおりに実行しましたが、エラーが発生しました。私はdjango1.3.1(ubuntu 12.04リポジトリから)とpython 2.7(ubuntuからのデフォルト)を使用しています
これは私の見解です:
これは私のテンプレート(search_form.html)です:
サーバーを再起動しましたが、403 forbiddenエラーがまだ存在し、CSRF検証が失敗したことを示しています。
私は2つの質問があります:
- このエラーを修正するにはどうすればよいですか?
- djangoで「POST」を作成するのが難しいのはなぜですか。つまり、これほど冗長にする特別な理由があります(私はPHPから来ており、これまでにそのような問題を見つけたことはありません)。
django - Nginx Django csrf_token get 502エラーの無効なヘッダー
Pinax を使用して開発された Django サイトがあります。apache+mod_wsgi でデプロイすると正常に動作します。しかし、nginx+uwsgi でデプロイすると、ほぼ問題なく動作しますが、ページに{% csrf_token %}
タグが含まれています。クラッシュしたページには Django エラー ページは表示されませんが、Nginx 502 エラー ページが表示されます。Nginx エラー ログは次のとおりです。
2012/06/08 09:11:59 [エラー] 30224#0: アップストリームからの応答ヘッダーの読み取り中に *79 アップストリームが無効なヘッダーを送信しました, クライアント: 211.142.12.3, サーバー: mysite.com, リクエスト: "GET /discuss/ HTTP /1.1"、アップストリーム: "uwsgi://127.0.0.1:9001"、ホスト: "mysite.com"、リファラー: "http://mysite.com/"
uwsgi が表示されます:
{アドレス空間の使用量: 42319872 バイト/40MB} {RSS の使用量: 22573056 バイト/21MB} [pid: 21398|app: 0|req: 1/3] 110.178.82.221 () {988 バイトの 42 変数} [6 月 8 日金曜日18:27:01 2012] GET /discuss/ => 2306 ミリ秒で 31139 バイトを生成 (HTTP/1.1 200) 358 バイトで 5 つのヘッダー (コア 0 の 1 つのスイッチ)
このエラーは、POST 要求ではなく GET 要求で発生します。csrf_token
これをテストしました-テンプレートからトークンを削除すると、問題ありません。したがって、トークンとエラーの間には関係がなければなりません。
どうしたの?
django - 認証を必要としないページに「CSRFトークン」を含めることはセキュリティリスクですか?
私は、csrf攻撃からの保護のためにDjangoのcsrfトークンを使用するDjangoサイトを持っています。フォームの1つは、ログインしていない人を含め、一般の人がアクセスできます。
Csrfトークンは、クロスドメインリクエストに対する保護を提供することになっています。
編集:(私のコメントからの引用)「しかし、承認を必要とせずに許可された投稿リクエストの場合、csrfは些細なスパムフィルターに勝るものはありません(captchaはここでうまくいくでしょう)。認証をまったく必要としないページにCSRFトークン(たとえば30分後に期限切れ)を含めます(ただし、私のサイトはそれを行っているので、最初にこの投稿を作成しました)」
また、この場合、ブラウザのjsコンソールでそのページをフェッチし、特定のxpathを介してcsrfトークンを取得し、そのcsrfを使用して任意のデータを投稿することができます。また、手順は簡単に再現でき、サイトに対して特定の攻撃を設計できます。その場合、Djangoサイトでは、毎回「csrfmiddlewaretoken」以外のcsrfトークンが見つかります(reddit、pinterestなどのサイトが含まれます)。
私が見る限り、少し難しくすることを除けば、csrfトークンはあまり役に立ちませんでした。
私が欠けている側面はありますか?私の実装は間違っていますか?そして、私が正しければ、csrfトークンをhtmlソース(特に認証を必要としないもの)で飛ばすのはばかげていますか?
python - {% csrf_token %} を持っていても、CSRF トークンが見つからないか正しくありませんが、HttpResponse を使用しています
form.html
そしてviews.py私はrender_to_responseではなくHttpResponseを使用します
render_to_response を使用する場合は、RequestContext を追加するだけですが、HttpResponse を追加する場合は、どうすればよいかわかりません。
私はDjango 1.4を使用しています
が、どこに問題がありますか
=========================
HTML をレンダリングする関数を変更すると、私の問題は解消されます。
に
それはばかげた間違いです...ありがとう...
ajax - Django: ajax の post 呼び出しで相対 URL が機能しない
次のように、post ajax呼び出しで相対URLを使用しようとしています:
現在の URL パス:
別のディレクトリに変更する必要があります。
私のget呼び出しでは、絶対URLと相対URLの両方でデータが返されます。
しかし、POST 呼び出しの場合、相対 URL を使用すると、内部サーバー エラーが発生します (絶対 URL は正常に動作します)。私の見解では、テスト目的で @csrf_exempt も含めているため、CSRF とは関係ないと思います。(リクエストにhttps://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajaxを含めました)
Chrome デバッガーは、相対 URL を使用した post 呼び出しで次のエラー メッセージを表示します。
ただし、ご覧のとおり、アクセスしたい完全な URL リンクが提供されます。リンクを直接クリックすると、ページのデータが取得されます。
ビューは非常にシンプルです。
POST 呼び出しで相対 URL パスが失敗する理由について、何らかの提案がありますか? 前もって感謝します..