web-dev-qa-db-ja.com

同一オリジンポリシーはPUT / DELETE CSRFからどのように保護しますか?

クロスサイトリクエストフォージェリのOWASPガイド を読みましたが、PUTやDELETEなどの「その他のHTTPメソッド」はCSRFに理論的に使用できると述べています。

ただし、同じオリジンポリシーでは、これらのリクエストは実行されません。 PUT/DELETEがsame-Origin-policyの影響を受けるのはなぜですか、POSTは影響を受けません。

4
boolean.is.null

GETおよびPOSTは、基本的なリンク、埋め込み、およびフォームの送信で使用されるメソッドです。サイト間のこの種の相互作用は、同じOriginポリシーの開発よりも前に行われています。同じOriginポリシーが拡張されて、 POSTとGETも多くのサイトが壊れるでしょう。

したがって、リンク、埋め込み、またはフォームによって作成できるPOSTおよびGETは、同じOriginポリシーから除外されます。ただし、カスタムヘッダーを使用するGETおよびPOST [〜#〜] xhr [〜#〜] でのみ作成できる同様のものは除外されません。これは、同じOriginポリシーより古いWebで発生する可能性がないためです。次も参照してください CORS仕様では、不足しているContent-Typeヘッダーが「単純なヘッダー」を意味すると見なしていますか? 詳細情報。

PUTとDELETEは、理論的にはCSRFに使用できます...ただし、同じ元のポリシーでは、これらの要求は実行されません。

これはデフォルトでのみ当てはまります。ターゲットが適切な CORSポリシー を提供する場合、PUTおよびDELETEをCSRFにも使用できます。

4
Steffen Ullrich