問題タブ [authenticity-token]
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.
ruby-on-rails-4 - Rails 4リンクを介してパラメータを保存するときの認証トークンが無効です
Rails 4 アプリにパラメーターを持つMessage
モデルがあります。archived
ショー ビューには、パラメータを にbutton_to
設定する があります。この関数は、Devise とメーラーをモデルに追加する前は機能していました。ここで、「アーカイブ」ボタンをクリックすると、「ActionController::InvalidAuthenticityToken」エラーが発生します。このエラーを回避するために私が見つけた唯一のことは、に追加することです。ただし、それを行うと、パラメーターは保存されません。archived
true
Message
skip_before_filter :verify_authenticity_token, :only => [:archive]
Messages Controller
button_to リンクを介して認証トークンを渡す方法はありますか? または、セキュリティを損なうことなくこれを達成するためのより良い方法はありますか?
メッセージ.rb
Messagescontroller.rb
MessagesHelper.rb
メッセージ表示ボタン
どんな助けでも大歓迎です!ありがとう!
編集:
これは明らかに、私のすべてのフォームにも当てはまります。これはデバイスの問題ですか?
ruby-on-rails - 認証トークンを使用して POST リクエストを実行しましたが、例外がまだ発生しています
私のコントローラーは js GET リクエストに応答しており、私のファイルでは、ユーザーのブラウザーの生成されたブラウザー データをjs.erb
報告しています。Fingerprint2
データ文字列が大きいため、これは POST 要求で行われるためbeforeSend
、Authenticity Token を追加するメソッドを挿入しました。
ただし、これは で拒否されActionController::InvalidAuthenticityToken - ActionController::InvalidAuthenticityToken
ます。私がチェックすると、成功した GET リクエストのヘッダーは次のようになります。
js コードは次のようになります。
ruby-on-rails - 認証トークンを手動で追加しますが、バックエンドで検証されません
<%= csrf_meta_tags %>
HEAD タグに がありましたが、フォームを手動で作成したため、隠しauthenticity_token
フィールドがフォームに挿入されませんでした。
だから私はauthenticity_token
手動で追加しました:
Web サイトのデフォルトの連絡先フォーム (ユーザーがログインしていない) を送信すると、それを処理するアクションはトークンを検証し、要求を許可/拒否する必要があります。しかし、そうではありません: jQuery を使用してフィールドを空にし、フォームを送信しますが、エラーや例外はスローされません。
私はこの行を取得protect_from_forgery with: :exception
し、 application_controller を拡張し、連絡先フォームに応答するアクションを持つ にapplication_controller.rb
同じ行を入れました。foo_controller.rb
それで、私は何が欠けていますか?このフォームをバックエンドで検証するにはどうすればよいですか?
どうもありがとう!
ruby-on-rails - ランダムな無効な認証トークン エラーのデバッグ
私たちの実稼働サーバーは、数か月前から無効な認証トークン エラーを生成しています。エラーは、(PUT|POST|DELETE) リクエストを送信するほぼすべてのフォームで生成されます。エラーが発生する場合と発生しない場合があります。なぜそれらが発生するのかについて韻や理由はないようです。エラー自体は頻繁に発生するわけではありませんが、心配です。以下は、このエラーの原因となる典型的なフォームの例です。
これが私がこれまでに発見したものです。
- Turbolinks 2.5.3 を使用しています (これは 1 年以上更新されていません)。
- 無効なトークン エラーが発生するたびに、ユーザーは認証トークンをサーバーに渡しましたが、最終的には無効になりました。
- 現在
protect_from_forgery with: :exception
、アプリケーションコントローラーで使用しています。 - 数か月前に一連の新しいコードを本番環境にプッシュしたときに、エラーが発生し始めました。この新しいコードは数百のファイルにまたがっていますが、これまでのところ、この問題に関連するコードは見つかりませんでした。
- このエラーは、どのタイプのブラウザとデバイスでも発生する可能性があります。
- トラフィックの増加と無効な認証トークンの表示との間に相関関係はありません。
- ユーザーはどの国からでも来ることができます。
- これらは、これらの問題が発生しているボットではありません。私たちの同僚にもこのエラーが発生したことがありましたが、彼らはエラーを発生させるために何をしたか覚えていません。
- ユーザーは、予期しない場合でも典型的な動作に従います。彼らは意図したとおりにアプリを使用しています。私は彼らのクリックと記録された行動履歴に目を通し、これを結論付けました.
最終的には、これを解決する方法を見つけたいと思います。私の最初のステップは、エラーを正常に再現することですが、それもできません。私の質問は次のとおりです。これの原因を突き止めるにはどうすればよいですか? オプションが不足しています。ありがとう!
ruby-on-rails - Rails InvalidAuthenticityToken with HTTPS + ELB
サイトで HTTPS を機能させようとしていますがActionController::InvalidAuthenticityToken
、すべての投稿リクエストに対して取得しています。form_authenticity_param
andをログに記録しましたform_authenticity_token
が、実際には異なります。
SSL は Elastic Load Balancer で解決され、非 SSL リクエストがウェブアプリに送信されます。予期される CSRF トークンは Cookie ベースのセッションに保存されるため、HTTP と HTTPS のセッションは異なるトークンを予期しているように見えます。サイトで HTTP を使用している場合、post/put リクエストは正常に機能します。
私はこの問題に少し立ち往生しています。どんなアドバイスも役に立ちます