問題タブ [protect-from-forgery]

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 に答える
733 参照

android - Rails protect_from_forgery とモバイル アプリ

Rails でアプリを作成していますprotect_from_forgeryが、application.rb. また、モバイル アプリがデータを使用して通信するための RESTful API も作成しJSONました。protect_from_forgeryモバイル アプリが Rails アプリケーションと対話するために、JSON リクエスト をオフにしていると主張するサイトをいくつか見かけます。

これはCSRFの問題をどのように解決しますか? 悪意のあるサイトが、ユーザーに代わって望ましくない変更を実行する JSON POST 要求を持たないようにすることはできますか?

したがって、この問題を解決するために、モバイル アプリのみが使用するカスタムmime-typeまたはおそらくを使用することにし、次のことを実行しました。special keyprotect_from_forgery

  1. csrf トークンがとして存在するかどうかを確認しますhidden div(Web アプリの場合は true で、既定で含まれています)。
  2. special key存在しない場合は、これまたはを確認してくださいmime-type

この問題に対抗するために、これを達成する方法、または同様の方法はありますか?

アップデート

私が問題を考えすぎていたことが判明しました。Rails は「魔法のように」、例外を発生させることなく、モバイル アプリからのリクエストを自動的かつ適切に処理します。したがって、本質的には、まったく変更を加える必要はありませんでした。

私は Rails がこれをどのように実現するかを十分に確認していませんでしたが、教育的に言えば、これは興味深いことかもしれません。

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

ruby-on-rails - Rails での HTTP GET リクエストによる CSRF 保護

Rails はデフォルトでリクエストをCSRF保護していないことを理解しています。HTTP GETただし、これらの GET 要求からユーザーに返される機密情報があり、悪意のあるサイトがこの情報を取得することは望ましくありません。

RailsHTTP GETからのリクエストを保護する最良の方法は何ですか?CSRF

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

ruby-on-rails - スマートフォンで無効化された Cookie の InvalidAuthenticityToken

Rails 3.0.3 と Heroku の使用

Heroku アプリのフォーム投稿で InvalidAuthenticityToken のようなエラーが発生します。私のアプリケーションコントローラーでは、protect_from_forgery を有効にしています。

私の検索フォーム

ルート:

無効なトークン エラーは、誰かが私の検索フォームから Web サイトを検索しようとしたときに、Cookie を無効にしてスマートフォンを使用しているときに発生します。Cookie を無効にした Web ブラウザー (Firefox) で Web サイトにアクセスしようとしましたが、問題なく動作しました。

私が作成した「検索エンジン」でこの動作が得られない (このアプリでは使用できない方法で) ので、何が問題なのですか? スマートフォンと Cookie だけが無効になっているのはなぜですか?

これを機能させるにはどうすればよいですか?

0 投票する
8 に答える
47151 参照

ruby-on-rails - Rails CSRF Protection + Angular.js: protect_from_forgery により、POST でログアウトする

オプションがapplication_controllerに記載されている場合、protect_from_forgeryログインしてGETリクエストを実行できますが、最初のPOSTリクエストでRailsがセッションをリセットし、ログアウトします.

オプションを一時的にオフにprotect_from_forgeryしていましたが、Angular.js で使用したいと考えています。それを行う方法はありますか?

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

asp.net - asp.net とクロス サイト リクエスト フォージェリ

最近、アプリケーションに対して Appscan を実行したところ、レポートのいくつかのページに次のように表示されました。元の要求に次の変更が適用されました。

  • HTTP ヘッダーを「http://bogus.referer.ibm.com」に設定して
    ください 理由:
    同じ要求が異なるセッションで 2 回送信され、同じ応答が受信されました。これは、どのパラメーターも動的ではない (セッション ID は Cookie でのみ送信される) ため、アプリケーションがこの問題に対して脆弱であることを示しています。

これを処理する方法について少し混乱しています.Request.UrlReferrerを見て、それがURLにあるものと同じホストであることを確認するか、これを処理するより良い方法がありますか?

ありがとう。

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

ruby-on-rails - AJAX /更新アクションを介してページ上の非ルーティングクリックを安全に登録する方法は?

要素の表示/非表示を切り替えるなど、Web ページでさまざまなクリックを登録したいと考えています。

クリックは、ログインしていないユーザーからのものです。

特定のページで行われたアクションのキーと値のペアを格納する属性を持つImpressionモデルがあります。actions

クリックイベントで、この関数でレコードを更新しています:

しかし、これはまったく安全ではないことを認識しています。理論的には、ユーザーは必要なレコードを更新できます。

どうすればこれをより安全に行うことができprotect_from_forgeryますか? 私のユースケースで Rails を何らかの方法で利用できますか?

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

unity3d - Railsのprotect_from_forgeryの問題とC#/unity3Dでの警告

Railsのprotect_from_forgeryを手に入れたばかりで、アプリの簡単なログインを次のように記述しました。

クライアント側

サーバー側では、私の application_controller.rb に

ページからログインしようとしましたが、問題ないようです。少なくともログインできます。ただし、いくつか質問があります(私はwin OSを使用しています)

  1. protect_from_forgery; のオプションに関する詳細は見つかりませんでした。null_session、if: Proc.new { |c| に続くオプションについて詳細な説明を得ることができる側の誰かがあれば幸いです。c.request.format == 'アプリケーション/json' }

  2. フォームが CSRF 認証を使用し、通過しているかどうかを確認するにはどうすればよいですか? 送信されたフォームが「authenticity_token」であるパラメーターのセットのコンソールから見ることができますが、これは 1 つですか? はいの場合、どのように生成/定義されていますか? 私が見る限り、それは毎回同じです。

また、別のアプリケーション (Unity3D c# で記述) を以下で実行し、同じサーバーに接続しています。

今回も、クライアントは引き続きログインできますが、コンソールから次のような警告が表示されます。

私はこれについてグーグルで検索しましたが、ほとんどの答えは、単に追加する必要があると言うことのようですskip_before_filter :verify_authenticity_tokenが、これは単にセキュリティチェックをバイパスするだけですか? しかし、ここでセキュリティチェックが必要なので、意味がありません...

これを修正し、ログイン セッションが protect_from_forgery でチェックされるようにするにはどうすればよいですか?

私の質問を手伝ってくれてありがとう!:)

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

ruby-on-rails - ActionController::Rails エンジンの InvalidAuthenticityToken

RailsでSaaSエンジンを構築しています。account#create メソッドで次のエラーが発生しています (warden gem が使用されています)。

私のアプリケーションコントローラーは次のようになります。

を :null_session に変更するprotect_from_forgery with: :exceptionとエラーは解消されますが、このサインアップ アクションの後にユーザーがログインする必要があり、:null_session は API 専用であるため、これはこの問題の適切な解決策ではないと思います。

また、このサイトは、サインアップしているユーザーの Cookie を作成していませんが、これは正しくないようです。

何か案は?