サイトアイコン 知的好奇心

DjangoのPOSTでアクセス禁止(403)エラーが出た場合の対応方法

DjangoのPOSTでアクセス禁止(403)エラーが出た場合の対応方法をご紹介します。

条件

事象

ドメインを設定したDjangoアプリでPostを実行したところ以下のようなエラーが発生しました。

対応

setting.pyの編集

「ALLOWED_HOSTS」および「CSRF_TRUSTED_ORIGINS」に対象のドメインを記述します。

例)設定したサイトのドメインが「fuga.hogehoge.com」(hogehoge.comのサブドメイン)の場合、以下のように記述します。

setting.py

ALLOWED_HOSTS = ['XXX.XXX.XXX.XXX','fuga.hogehoge.com']
CSRF_TRUSTED_ORIGINS = ['https://*.hogehoge.com','http://*.hogehoge.com']

その後、djangoアプリを再起動します。

以上の対応で当該エラーは解消しました。

参考

django:SRF_TRUSTED_ORIGINS

https://docs.djangoproject.com/en/5.0/ref/settings/#csrf-trusted-origins

stackoverflow:Forbidden (403) CSRF verification failed. Request aborted. Reason given for failure: Origin checking failed does not match any trusted origins

https://stackoverflow.com/questions/70285834/forbidden-403-csrf-verification-failed-request-aborted-reason-given-for-fail

モバイルバージョンを終了