REST_FRAMEWORK = {
"DEFAULT_AUTHENTICATION_CLASSES": [
"rest_framework.authentication.SessionAuthentication",
],
}
フロントエンドからX-CSRFTokenを送ります。
AuthorizationヘッダーへBearer Tokenを明示的に付ける構成では、典型的なCookie型CSRFは成立しにくくなります。
Authorization: Bearer eyJ...
ただし、次の場合は安全とは限りません。
Bearer TokenをCookieへ保存している
CORSで不正Originを許可している
トークンをlocalStorageへ保存し、XSSがある
リフレッシュトークンをCookieで自動送信している
認証方式がエンドポイントごとに混在している
CSRFを避けるためにlocalStorageへ移した結果、XSSによるトークン窃取リスクが増えることがあります。
CookieとlocalStorageのどちらが常に安全という単純な話ではありません。
csrf_exemptを安易に使わない次のデコレーターはCSRF検証を無効化します。