クロスドメインフォームの投稿 質問する

クロスドメインフォームの投稿 質問する

このトピックに関する記事や投稿を(SOを含む)あちこちで見てきましたが、一般的な解説は、同一生成元ポリシーがドメインをまたいだフォームのPOSTを阻止するというものです。同一生成元ポリシーがフォームのPOSTには適用されないと示唆している人を見たのは、ここにある

もっと「公式」または正式な情報源からの回答が欲しいです。たとえば、同一生成元がフォーム POST にどのように影響するか、または影響しないかを扱っている RFC を知っている人はいますか?

説明: GET または POST を構築して任意のドメインに送信できるかどうかを尋ねているのではありません。私が尋ねているのは、次のことです。

  1. Chrome、IE、またはFirefoxがドメイン「Y」からのコンテンツをドメイン「X」にPOST送信することを許可するかどうか
  2. POST を受信するサーバーが実際にフォームの値を確認するかどうかです。オンライン ディスカッションの記録のテスターの大半が、サーバーは POST を受信したが、フォームの値はすべて空または削除されていたと述べているため、私はこう言います。
  3. ブラウザーが現在何を実装しているかに関係なく、期待される動作について説明している公式ドキュメント (RFC など) は何ですか。

ちなみに、同一生成元がフォームの POST に影響しない場合は、偽造防止トークンが必要な理由がいくらか明らかになります。「いくらか」と言ったのは、攻撃者が単に H​​TTP GET を発行して偽造防止トークンを含むフォームを取得し、同じトークンを含む不正な POST を実行できると考えるのは簡単すぎるように思われるからです。コメントはありますか?

ベストアンサー1

同一生成元ポリシーは、ブラウザ側のプログラミング言語にのみ適用されます。したがって、JavaScript を使用して生成元サーバーとは異なるサーバーに投稿しようとすると、同一生成元ポリシーが適用されますが、フォームから直接投稿する場合、つまりアクションが次のように異なるサーバーを指す場合は、同じ生成元ポリシーが適用されます。

<form action="http://someotherserver.com">

フォームの投稿に JavaScript が使用されない場合は、同一生成元ポリシーは適用されません。

見るウィキペディア詳細については

おすすめ記事