Ungültiger http_host-Header

109

Ich versuche, eine Website mit dem Django-Framework zu entwickeln und mit DigitalOcean.com zu starten und die erforderlichen Dateien in das Django-Projekt bereitzustellen.

Ich musste statische Dateien in das Django-Projekt aufnehmen und nachdem ich statische Dateien gesammelt hatte, versuchte ich meine IP zu aktualisieren

Ich füge die Tutorials hinzu, mit denen ich die Website erstellt habe. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

Ich erhalte die folgende Fehlermeldung:

DisallowedHost at / Invalid HTTP_HOST-Header: '198.211.99.20'. Möglicherweise müssen Sie u'198.211.99.20 'zu ALLOWED_HOSTS hinzufügen.

Kann mir jemand helfen, das zu beheben? Dies ist meine erste Website mit Django Framework.

Kathiravan Natarajan
quelle
Dies kann auch Ihre Floating IP-Adresse auf DigitalOcean sein.
Poopy McFartnoise

Antworten:

183

Das Fehlerprotokoll ist unkompliziert. Wie vorgeschlagen, müssen Sie Ihrer ALLOWED_HOSTSEinstellung 198.211.99.20 hinzufügen .

Stellen Sie in Ihrer Datei "settings settings.py" Folgendes ein ALLOWED_HOSTS:

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

Weitere Informationen finden Sie hier.

Prakhar Trivedi
quelle
Jetzt wird der folgende Fehler angezeigt: Anforderungs-URL: 198.211.99.20 Ausnahmetyp: TemplateDoesNotExist Ausnahmewert: personal / home.html Ausnahmestandort: /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py In get_template, Zeile 25 habe ich meine Vorlagen im folgenden Ordner / home / django / django_project / personal / templates / personal
Kathiravan Natarajan
@Kathir Es gibt viele Beispiele für diesen Fehler. Google ihn einfach und wenn das Problem weiterhin besteht, stellen Sie ihn bitte als separate Frage. Kommentare sind nicht sehr beschreibend.
Prakhar Trivedi
Dies funktioniert definitiv, ist aber eine schlechte Praxis, da Sie immer eine .env-Datei verwenden sollten
Abhishek Jebaraj
@AbhishekJebaraj Könnten Sie bitte etwas mehr erklären oder einen Link mit mehr Erklärung teilen?
Jesus Almaral - Hackaprende
1
@JesusAlmaral Eine .env-Datei ist eine lokale Datei, die Kennwörter und andere vertrauliche Informationen enthält. Wenn Sie all diese vertraulichen Informationen in Ihren Code selbst einfügen, kann dies zu einer Gefährdung führen. Daher verwenden wir diese lokale Datei .env und jeder speichert mit seinen eigenen Passwörtern usw. lokal
Abhishek Jebaraj
0

settings.py

ALLOWED_HOSTS = ['*']
George Poliovei
quelle
2
Wie Pydanny sagte: "... lassen Sie es nicht als solches, wenn Sie dies herausgefunden haben. Der Grund dafür ist, dass Django potenziell anfällig für HTTP_HOST-Header-Angriffe ist. Und automatisierte Skripte durchsuchen das Internet, um zu überprüfen, ob Websites diese Sicherheitsanfälligkeit aufweisen." github.com/pydanny/cookiecutter-django/issues/…
javidazac
6
Lol, das ist für die Entwicklung env. in der Produktion muss nur DEBUG = False gesetzt werden.
George Poliovei
4
Sie möchten '*' nicht für die Produktion verwenden. Dies umgeht den Grund und die Sicherheit der zulässigen Hosts vollständig.
Andy Poquette
@radtek - gehen Sie ein Verzeichnis tiefer, Sie bearbeiten die falschen Einstellungen.py
birdmw