私たちは、Symfony 3 REST API(FosRestBundleを使用)に基づいてAngular 2 Webアプリケーションを構築しています。私たちはステートフルJWTを使用して、バックエンドとフロントエンドの間でユーザーを認証しています。Symfony 3 API RESTとJWTのAngular webappにCSRFトークン保護を使用すると便利ですか?
現在、CSRFについて考えており、JWTに加えてCSRFトークンを使用するのが正しいかどうか疑問に思っています。私たちは、FosRestBundle documentationにすることをお読みください。
HTMLフォーム経由だけでなく、REST APIを介して両方のフォームを処理する単一のアプリケーションを構築する場合、1はCSRFトークンの検証と問題に実行されます。ほとんどの場合、HTMLフォームで使用可能にする必要がありますが、REST APIに使用することは意味がありません。このため、特定の役割を持つユーザーのCSRF検証を無効にするフォーム拡張機能があります。これはもちろん、REST APIユーザーが自分自身を認証し、特別な役割を割り当てられることを要求します。
また、他のいくつかのStackOverflowに関する質問もあります(たとえばhereとhereを参照)。
私の質問は簡単です:REST APIでCSRFトークンを使用することは推奨されないのはなぜですか? JWTがCSRF攻撃をどのように保護できるかはわかりません。すべての