web-dev-qa-db-ja.com

CSRF PUTリクエストの活用

アプリケーションがRESTful通信を使用する場合、PUTおよびDELETE要求に対してCSRF保護が必要ですか?私の理解によれば、JavaScriptを使用してPUTリクエストをトリガーすることは不可能であるため、CSRF PUTで悪用が可能かどうかを知りたいです。

2
Ron

XMLHttpRequestでJavascriptを使用してPUTおよびDELETEを実行することが可能です。ただし、これらのメソッドをクロスオリジンリクエストに使用すると、サーバーがこのクロスオリジンPUT/DELETEを受け入れるかどうかを確認するためにプリフライトリクエストが実行されます。サーバーがこのリクエストを明示的に許可しない限り、実際のP​​UT/DELETEは実行されません。 CORSおよびプリフライトリクエストの詳細については、 http://www.html5rocks.com/en/tutorials/cors/ を参照してください。

CORS XMLHttpRequestをサポートしない(古い)ブラウザーでは、同じOriginポリシーによって制限されることに注意してください。これは、ブラウザーがこの方法でクロスオリジンリクエストを送信しようとはしないため、CSRFが不可能であることを意味します。

要約すると、サーバーがOrigin間のクロス要求を受け入れるように構成されていない限り、PUTまたはDELETEを使用したCSRFは不可能です。

3
Steffen Ullrich