[Django] ALLOWED_HOSTSとは


結論

セキュリティ対策(HTTPヘッダーインジェクション)のために、サービスを提供するホストをリストで与える設定値

説明

ALLOWED_HOSTの役割

ヘッダーインジェクション攻撃を防ぐためにある
ALLOWED_HOSTSに設定されてないホストへのリクエストの場合、そのリクエストを弾く。

ALLOWED_HOSTSの使い方

サービスを提供するホストを設定する。
本番環境ではこの設定が必須
例えばサービスのドメインがwww.example.comなら以下のように設定する。

settings.py
ALLOWED_HOSTS = [
     'www.example.com'
]

IPを指定しても良い

settings.py
ALLOWED_HOSTS = [
    '20.0.0.0'
]

開発時はアスタリスクを指定しておくと楽

基本的に開発時は、*を設定して置けば良い

settings.py
ALLOWED_HOSTS = ['*']

参考

DjangoのALLOWED_HOSTSの役割と使い方 - なるぽのブログ
Django ALLOWED_HOSTSの設定