Django 4系以降では、スキームを含むOriginを指定します。
CSRF_TRUSTED_ORIGINS = [
"https://example.com",
"https://www.example.com",
]
必要な場合だけワイルドカードを使います。
CSRF_TRUSTED_ORIGINS = [
"https://*.example.com",
]
しかし、すべてのサブドメインを信頼すると、古い検証環境やユーザーコンテンツ用サブドメインの脆弱性が本番へ影響する可能性があります。
原則として、完全なOriginを個別指定します。
次のような広すぎる設定は避けます。
# 推奨しない
CSRF_TRUSTED_ORIGINS = [
"https://*.example.com",
]
特に、次のサブドメインがある場合は危険です。
uploads.example.com
staging.example.com
old.example.com
user-content.example.com
Djangoへ正しいHostとスキームを伝えます。