Intestazione http_host non valida


109

Sto cercando di sviluppare un sito Web utilizzando il framework Django e l'ho lanciato utilizzando DigitalOcean.com e ho distribuito i file necessari in django-project.

Ho dovuto includere file statici in Django-project e dopo aver raccolto file statici, ho provato ad aggiornare il mio ip

Includo i tutorial che ho utilizzato per creare il sito web. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

Ricevo il seguente errore:

DisallowedHost in / Intestazione HTTP_HOST non valida: "198.211.99.20". Potrebbe essere necessario aggiungere u'198.211.99.20 'a ALLOWED_HOSTS.

Qualcuno può aiutarmi a risolvere questo problema? Questo è il mio primo sito Web che utilizza il framework Django.


Potrebbe anche essere il tuo indirizzo IP mobile su DigitalOcean.
Poopy McFartnoise

Risposte:


184

Il registro degli errori è semplice. Come suggerito, devi aggiungere 198.211.99.20 alle tue ALLOWED_HOSTSimpostazioni.

Nel file settings.py del progetto, imposta in ALLOWED_HOSTSquesto modo:

ALLOWED_HOSTS = ['198.211.99.20', 'localhost', '127.0.0.1']

Per ulteriori letture leggere da qui.


Ora ottenendo il seguente errore URL richiesta: 198.211.99.20 Tipo di eccezione: TemplateDoesNotExist Valore eccezione: personal / home.html Posizione eccezione: /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py in get_template, riga 25 ho i miei modelli nella seguente cartella / home / django / django_project / personal / templates / personal
Kathiravan Natarajan

@Kathir Ci sono molti esempi di questo errore, basta cercarlo su google e se il problema persiste, chiedilo come domanda separata, i commenti non sono molto descrittivi.
Prakhar Trivedi

Funziona sicuramente ma è una cattiva pratica in quanto dovresti sempre utilizzare un file .env
Abhishek Jebaraj

@AbhishekJebaraj potresti spiegare un po 'di più o condividere un collegamento con ulteriori spiegazioni?
Jesus Almaral - Hackaprende

1
@JesusAlmaral Un file .env è un file locale contenente password e altre informazioni sensibili. Se inserisci tutte queste informazioni sensibili all'interno del tuo codice stesso, potrebbero essere compromesse. Quindi usiamo questo file locale .env e ognuno memorizza con le proprie password ecc. Localmente
Abhishek Jebaraj

0

settings.py

ALLOWED_HOSTS = ['*']

2
Come ha detto pydanny "... non lasciarlo così una volta capito. Il motivo è che rende Django potenzialmente vulnerabile agli attacchi di intestazione HTTP_HOST. E gli script automatici setacciano Internet per verificare se i siti hanno questa vulnerabilità." github.com/pydanny/cookiecutter-django/issues/…
javidazac

6
Lol, che è per lo sviluppo env. in produzione è sufficiente impostare DEBUG = False.
George Poliovei

4
Non si desidera utilizzare "*" per la produzione. Questo aggira completamente il motivo e la sicurezza degli host consentiti.
Andy Poquette

@radtek - vai più in profondità di una directory, stai modificando le impostazioni sbagliate.py
birdmw
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.