問題タブ [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 投票する
6 に答える
27999 参照

django - Django CSRF フレームワークを無効にできず、サイトが壊れています

django csrf ミドルウェアを無効にすることはできません。プロジェクトのミドルウェアからコメントアウトしましたが、CSRF の問題が見つからないためにログインに失敗しています。私はDjangoトランクから作業しています。CSRF がミドルウェアで有効になっていない場合、どのように問題が発生する可能性がありますか?

私のサイトには CSRF が破損する POST リクエストがたくさんあるため、無効にする必要があります。django トランク プロジェクトで CSRF を完全に無効にする方法に関するフィードバックはありますか?

Djangoのトランクからの「新しい」CSRFフレームワークも、入ってくる外部サイトを壊し、私が提供しているURLでPOSTを実行しています(これは安らかなAPIの一部です。)CSRFフレームワークを無効にすることはできません。先ほども言いましたが、どうすれば治りますか?

0 投票する
4 に答える
9717 参照

django - 多くの失敗があるDjangoCSRFフレームワーク

私のサイトのCSRFDjangoミドルウェア(SVNトランクからのバージョン)から多くの障害が発生しています。発生するエラーは次のとおりです。CSRF障害:reason=CSRFトークンがないか正しくありません。

これらのCSRFエラーがどこから来ているのかをどのように診断できますか?自分でCSRFエラーを発生させることはできませんが、CSRFエラービューがトリガーされるたびにメールで通知するようにサイトを設定しているため、頻繁に発生していることがわかります。

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

django - SVNトランクでDjangoのCSRF保護を完全に無効にします

Djangoが私に強制しようとしているCSRFを無効にしようとして、私は欲求不満で数時間を費やしましたが、役に立ちませんでした。他の誰かがこれを試してもっと成功しましたか? ソースパッチを除いて、動作するものは何でも問題ありません (ただし、モンキーパッチは問題ありません)。

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

asp.net-mvc - ASP.NET MVC の AntiForgeryToken はすべての CSRF 攻撃を防ぎますか?

AntiForgeryToken を使用するには、各要求が有効なトークンを渡す必要があるため、Web アプリケーションにデータを投稿する単純なスクリプトを含む悪意のある Web ページは成功しません。

しかし、悪意のあるスクリプトが最初に単純な GET リクエスト ( Ajaxによる) を作成して、隠し入力フィールドに偽造防止トークンを含むページをダウンロードし、それを抽出し、それを使用して有効なPOSTを作成した場合はどうなるでしょうか?

それは可能ですか、それとも何か不足していますか?

0 投票する
9 に答える
95623 参照

csrf - CSRF トークンの生成

これは CSRF トークンの生成に関する質問です。

通常、ユーザーのセッションに関連付けられた一意のデータに基づいてトークンを生成し、秘密鍵でハッシュおよびソルト化したいと考えています。

私の質問は、使用する一意のユーザー データがない場合のトークンの生成に関するものです。セッションは利用できません。Cookie はオプションではありません。IP アドレスとその性質のものは信頼できません。

ハッシュする文字列をリクエストの一部として含めることができない理由はありますか? トークンを生成して埋め込む疑似コードの例:

CSRF トークンのサーバー側検証の例

ハッシュで使用される文字列は、リクエストごとに異なります。それが各リクエストに含まれている限り、CSRF トークンの検証は続行できます。リクエストごとに新しく、ページにのみ埋め込まれているため、トークンへの外部アクセスは利用できません。トークンのセキュリティは、私だけが知っている $mySecretKey に委ねられます。

これは素朴なアプローチですか?これが機能しない理由がありませんか?

ありがとう

0 投票する
4 に答える
2998 参照

django - Cookieが無効になっている場合のDjangoCSRFの問題

Djangoで作成したアプリケーションをテストしているときに、フォームを送信するたびにHTTP403Forbiddenエラーがスローされることがわかりました。CSRFミドルウェアがCSRFトークンを使用してCookieをチェックすることは知っていますが、Cookieが無効になっているユーザーにどのようなアプローチを与える必要がありますか?

ユーザーが各ビューでCookieを有効にしているかどうかを確認する必要がありますか、それともより効率的な方法がありますか?

前もって感謝します。

この質問はDjangopre-1.2を扱っていました。古いバージョンを使用している場合、解決策は異なります。

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

ruby-on-rails - Rails、OAuth、および CSRF 保護

Railsアプリと通信するためにRESTとOAuthを使用しています(iPhoneアプリからですが、それは関係ありません)。ただし、Rails の CSRF 保護 (経由protects_from_forgery) でいくつかの問題が発生しています。

CSRF 保護は通常のフォーム送信 (つまり、Content-Type=application/x-www-form-urlencoded) に対してのみ有効であることを理解しているため、JSON または XML データを送信する場合は問題ありません。残念ながら、OAuth は現在 application/x-www-form-urlencoded リクエストに限定されています。OAuth を非フォーム urlencoded データに拡張するドラフト仕様がありますが、これは今のところ役に立ちません。

私の見方では、次のオプションがあります。

  1. OAuth署名の一部ではないため、中間者攻撃の対象になることを認識して、データをJSONとして送信します。明らかに魅力的なソリューションではありません。

  2. UsersController#update_oauth通常のアクション (例 ) に内部的にデリゲートする特別な Rails アクション (例 ) を作成しますUsersController#update。次に、これらを偽造防止から除外します ( protects_from_forgery :only => [:update])。これは機能するはずであり、1 つまたは 2 つのアクションの境界線として許容される可能性がありますが、明らかに非常に厄介なソリューションになります。

  3. Rails CSRF 保護をオーバーライドして、OAuth リクエストを無視します。verify_authenticity_token私はこれを試していませんが、フックの 1 つ (おそらくフィルター) を変更して、OAuth 要求が成功したと見なすことができるように思われます。

誰もこれに遭遇したことがありますか?推奨事項はありますか?それとも、基本的な何かが欠けているのでしょうか?

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

search - 検索フォームにトークンを配置する理由はありますか?

まず、CSRF 攻撃の概念を理解していることをお伝えします。さて、検索フォームにトークンを配置するメリットはあるのでしょうか? 自分では本当に何も考えられません。

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

ruby-on-rails - Rails AuthenticityToken インフラストラクチャを使用して GET アクションを明示的に保護する方法

Rails AuthenticityToken は、POST/PUT/DELETE リクエストを CSRF 攻撃から自動的に保護します。しかし、私は別のユースケースを念頭に置いています。

他のサイトに埋め込みたくない動画を自分のサイトに表示しています。これがどのように機能するかというと、Flash Player が CDN から署名付き URL のリクエストを送信し、数秒で有効期限が切れます。今まで動画を見るにはログインが必要だったので、それが認証でした。ただし、サイトへの訪問者が別のサイトから署名付き URL を要求されることを許可せずにビデオを視聴できるようにしたいと考えています (サイトにプレーヤーを埋め込んだ場合など)。

私の最初の考えは、これらの正確なセマンティクスを持っているように見えるので、AuthenticityToken に行きました...私がする必要があるのは、それを GET 要求にプラグインすることだけです。何か案は?

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

django - Django エラー: csrf.py をインポートできません

Django アプリが突然壊れ始めましたが、その理由がわかりません。私は今それを実行することさえできません。リビジョン 11798 を実行しています。

スタンドアロン サーバーを使用してアプリをテストすると、突然 csrf がインポートされなくなりました。以前は完全に機能していました。シェルを使用して何が起きているかを確認しようとしましたが、結果は次のとおりです。

ファイルシステムをチェックして、ファイルが存在するかどうか、およびファイルが無傷であるかどうかを確認しました。私はひどく混乱しています。誰でも私を助けることができますか?

Django エラーは次のとおりです。