問題タブ [csrf-protection]

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 投票する
1 に答える
588 参照

ruby-on-rails - Rails form_authenticity_token が params[:authenticity_token] と一致しません

form_authenticity_token が params[:authenticity_token] と一致しないのはどのような状況ですか?

検証されていないリクエストがアプリに送られてくるのを確認していたので、form_tag をオーバーライドしてデバッグ情報を出力しました。

そして、セッションが form_auth_token に一致する適切なトークンを持っていることを示す出力を得ましたが、送信されたパラメータはauthenticity_tokenと一致しませんでした:

定義上、params[:authenticity_token] は form_authenticity_token と同じになると思いました。

  1. これを間違った方法でデバッグしていますか?
  2. 何が原因でしょうか?
0 投票する
3 に答える
9952 参照

csrf - CSRFGuard - リクエスト トークンがセッション トークンと一致しません

アプリケーションの CSRF 脆弱性を修正するために、CSRFGuard ライブラリを組み込んでいます。ただし、ここで指定されているように構成した後、アプリケーションをナビゲートすると、ログに次のメッセージが表示されます。

以下を含めることにより:

私のmain.jspページでは、リンクはすべて組み込まれていますCSRFGuard token

そのため、リンクが期待値以外のトークンを渡す原因となる可能性のある間違ったことを理解できません。

分かりやすくするための追加情報があれば教えてください。

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

csrf - Cookie を使用した CSRF トークン保護

csrf トークンを Cookie に保存するのは良い方法ですか、それともフォームで隠しフィールドを使用する方が良いですか? また、キャプチャが行っているように、ユーザーリクエストごとに csrf トークンを再生成するのは良いことですか?

ありがとう

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

google-chrome-extension - ブラウザー拡張機能での CSRF 保護

サイトに CSRF 保護を実装する必要があります。そのため、サイトのすべてのフォームにこれを実装し始めましたが、ブラウザー拡張機能 (Chrome、Safari、Firefox) での実装に問題があります。拡張機能からの投稿 (フォームと ajax 投稿) に対してこれを行う方法がわかりません。誰かがこれを実装したことがありますか?

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

php - 一意のフォーム トークンにより、ユーザーのマルチタスクが無効になります

サイトとユーザーをクロス サイト フォージェリ (CSRF) 攻撃から保護したい場合は、フォームのあるすべてのページ$token = md5( time() * rand );で一意のトークンを生成できます。トークンは非表示の入力フィールドに送信され、同時にセッション変数に保存されます。echo '<input type="hidden" name="token" value="'.$token.'">';$_SESSION['token'] = $token;

提出されたフォームに記載されているかどうかを確認し、if($_POST['token'] == $_SESSION['token'])それに応じて処理を進めます。

ただし、一部のユーザーはマルチタスクを行う場合があります。これは、これを投稿している間、私が実際に行っていることです。

投稿を作成している間、さまざまなウィンドウ/タブを開いて、情報を調査したり、スタック オーバーフローに関する他の質問を調べたりします。スタック オーバーフローにより、問題なくフォームを送信できます。

しかし、自分のサイトでこれを行うと、投稿/フォームを作成しながら他のページを閲覧することを意味$tokenし、自分のウェブサイトから別のページをプルアップするたびに再生成されます. input私が取り組んでいるフォームで非表示のトークンを作成し、別のページにアクセスしたときに再生成された変数と一致しなくなるため、最終的に間違った を送信したい...$_SESSION['token']

この問題を防ぐ方法、または CSRF を最初に停止するためのより良い解決策はありますか?

ユーザーにマルチタスクを許可し、CSRF から保護したい...

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

zend-framework2 - Zend フレームワーク 2 - 更新時に csrf が再生成される

Zend Framework 2 の formElement csrf に問題があります。

無効なフォームを送信し、同じページアクセスしてページを更新するまでは問題なく動作します。フィールドで「 notTheSame 検証エラーが発生し、 「送信されたフォームは、予期されたサイトから発信されたものではありません」というメッセージが表示され ます。csrf フィールドの値を確認すると、送信前の値とは異なるためです。

csrf フィールドを追加する前に、フォームは正常に機能していました。

次のようにcsrfフィールドを作成しています:

そしてビューファイルで:

(FormErrors は、フォーム メッセージを取得してスタイルを設定するビュー ヘルパーです)

私のコントローラーで:

私の質問は、フォームが有効ではなかったためにフォームページに戻ったときに csrf が再生成されるのはなぜですか?

PS: この投稿で解決策を見つけることができませんでしたZend Framework 2 CSRF 保護

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

ruby-on-rails - <%= csrf_meta_tags %> を public/index.html ファイルに生成する方法

フロントエンドには Backbone を、バックエンドには Ruby on Rails を使用しています。認証用にgemを考案しました。数日前にフロントエンド チームが作業を終えました。そのため、リクエストでjsonトラフバックボーン(標準的な方法)でデータを送信しようとしましたが、カスタムセッションコントローラーを入れてもStarted POST "/users/sign_in.json"エラーが発生します。このような:Completed 401 Unauthorized in 180msprotect_from_forgery except: :create

これを省略する方法、または<%= csrf_meta_tags %>Web で見つけたこのアプローチを使用できるように生成する必要がある場所:

フロントエンドは、require.js に依存するバックエンドとは別に作成されているため、これを標準の Rails アセット パイプラインに戻すことはできません。