4

私が調べたほとんどのフレームワークは、値が CSRF トークンである非表示の入力要素をフォームに挿入します。これは、ユーザー Bob が私のサイトにログインしてhttp://badsite.comにアクセスするのを防ぐように設計されています。これは、Bob がまだログインしているセッションを使用して要求を実行するようにサイトに指示する img タグまたは JS を埋め込みます。

私が得ていないのは、badsite.com の JS が私のサイトのフォームで URL を要求し、非表示の入力要素から CSRF トークンを正規表現し、AJAX がその有効な CSRF トークンを使用して私のサイトに投稿するのを阻止するものです。 ?

JS を使用して、実行時に CSRF トークンをフォームに挿入し、Cookie から値を取得する (badsite.com にはアクセスできない) ように思われます。ただし、このアプローチが言及されているのは聞いたことがなく、非常に多くのフレームワークが CSRF トークンを使用して単純な隠し入力を行っているため、私のソリューションが過度に設計されており、隠し入力方法を安全​​にするものの一部が欠けているのではないかと考えています。 .

誰でも明確にできますか?ありがとう!

4

1 に答える 1

4

私のサイトのフォームで URL を要求する AJAX から badsite.com の JS を停止するもの

Same Origin ポリシー(過度にリベラルなCORSヘッダーで覆さない限り)。サイトで実行されている JavaScript は、別のホストでホストされているサイトからのデータを、そのホストからの許可なしに読み取ることはできません。

SOP には回避策がありますが、それらはすべて、データの読み取り元のホスト (JSON-P、CORS) の協力を必要とするか、特定のユーザーを識別するデータを渡さない (そのため、承認が必要なものにアクセスします)。

于 2012-10-10T15:50:02.380 に答える