Nieprawidłowy nagłówek http_host


109

Próbuję stworzyć stronę internetową przy użyciu frameworka Django i uruchomić za pomocą DigitalOcean.com i wdrożyć niezbędne pliki w django-project.

Musiałem dołączyć pliki statyczne do projektu Django i po zebraniu plików statycznych próbowałem odświeżyć moje IP

Dołączam tutoriale, których użyłem do stworzenia strony internetowej. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

Otrzymuję następujący błąd:

DisallowedHost at / Invalid HTTP_HOST header: „198.211.99.20”. Może być konieczne dodanie adresu u'198.211.99.20 'do ALLOWED_HOSTS.

Czy ktoś może mi pomóc to naprawić? To moja pierwsza strona internetowa wykorzystująca framework Django.


Może to być również Twój ruchomy adres IP w DigitalOcean.
— Poopy McFartnoise

Odpowiedzi:


187

Dziennik błędów jest prosty. Jak zasugerowano, musisz dodać 198.211.99.20 do swoich ALLOWED_HOSTSustawień.

W pliku settings.py projektu ustaw w ALLOWED_HOSTSten sposób:

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

Więcej informacji znajdziesz tutaj.


Teraz pojawia się następujący błąd URL żądania: 198.211.99.20 Typ wyjątku: TemplateDoesNotExist Wartość wyjątku: personal / home.html Lokalizacja wyjątku: /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py w get_template, wiersz 25 Mam swoje szablony w następującym folderze / home / django / django_project / personal / templates / personal
— Kathiravan Natarajan

@Kathir Jest wiele przykładów tego błędu, po prostu wyszukaj go w Google i jeśli problem nadal występuje, zadaj go jako osobne pytanie, komentarze nie są zbyt opisowe.
— Prakhar Trivedi

To na pewno działa, ale jest zła praktyka, jak zawsze należy użyć pliku .env
— Abhishek Jebaraj

@AbhishekJebaraj czy mógłbyś wyjaśnić trochę więcej lub udostępnić link z dokładniejszym wyjaśnieniem?
— Jesus Almaral - Hackaprende

1
@JesusAlmaral Plik .env to lokalny plik zawierający hasła i inne poufne informacje. Jeśli umieścisz wszystkie te poufne informacje w samym kodzie, może to zostać naruszone. Dlatego używamy tego lokalnego pliku .env i każdy przechowuje lokalnie z własnymi hasłami itp.
— Abhishek Jebaraj

0

settings.py

ALLOWED_HOSTS = ['*']

2
Jak powiedział pydanny "... nie zostawiaj tego tak, jak już to zrozumiesz. Powodem jest to, że Django jest potencjalnie podatne na ataki nagłówka HTTP_HOST. A automatyczne skrypty przeszukują internet, aby sprawdzić, czy strony mają tę lukę." github.com/pydanny/cookiecutter-django/issues/…
— javidazac

6
Lol, czyli dla środowiska deweloperskiego. w produkcji wystarczy ustawić DEBUG = False.
— George Poliovei

4
Nie chcesz używać znaku „*” do produkcji. To całkowicie omija przyczynę i bezpieczeństwo dozwolonych hostów.
— Andy Poquette
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.