Неверный заголовок http_host


109

Я пытаюсь разработать веб-сайт с использованием фреймворка Django и запустить его с помощью DigitalOcean.com и развернуть необходимые файлы в django-project.

Мне пришлось включить статические файлы в Django-проект, и после сбора статических файлов я попытался обновить свой ip.

Я включаю учебные пособия, которые использовал для создания веб-сайта. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

Я получаю следующую ошибку:

DisallowedHost at / Invalid HTTP_HOST header: '198.211.99.20'. Возможно, вам потребуется добавить u'198.211.99.20 'в ALLOWED_HOSTS.

Может кто-нибудь помочь мне это исправить? Это мой первый сайт, использующий фреймворк Django.


Это также может быть ваш плавающий IP-адрес в DigitalOcean.
Poopy McFartnoise

Ответы:


187

Журнал ошибок прост. Как было предложено, вам нужно добавить 198.211.99.20 к вашей ALLOWED_HOSTSнастройке.

В файле settings.py вашего проекта задайте ALLOWED_HOSTSтак:

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

Для дальнейшего чтения читайте здесь.


Теперь появляется следующая ошибка URL-адрес запроса: 198.211.99.20 Тип исключения: TemplateDoesNotExist Значение исключения: personal / home.html Местоположение исключения: /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py в get_template, строка 25 Мои шаблоны находятся в следующей папке / home / django / django_project / personal / templates / personal
Катираван Натараджан

@Kathir Есть много примеров этой ошибки. Просто погуглите, и если проблема не исчезнет, ​​задайте ее как отдельный вопрос, комментарии не очень информативны.
Пракхар Триведи

Это определенно работает, но это плохая практика, так как вы всегда должны использовать файл .env
Абхишек Джебарадж,

@AbhishekJebaraj, не могли бы вы объяснить немного больше или поделиться ссылкой с дополнительными объяснениями?
Хесус Альмарал - Hackaprende

1
@JesusAlmaral Файл .env - это локальный файл, содержащий пароли и другую конфиденциальную информацию. Если вы поместите всю эту конфиденциальную информацию внутри самого кода, она может быть взломана. Таким образом, мы используем этот локальный файл .env, и каждый хранит свои пароли и т. Д. Локально
Абхишек Джебарадж

0

settings.py

ALLOWED_HOSTS = ['*']

2
Как сказал Pydanny, «... не оставляйте это как таковое, как только вы это выясните. Причина в том, что делает Django потенциально уязвимым для атак на заголовок HTTP_HOST. А автоматические скрипты просматривают Интернет, чтобы проверить, есть ли на сайтах эта уязвимость». github.com/pydanny/cookiecutter-django/issues/…
javidazac

6
Lol, то есть для разработки env. в производстве нужно только установить DEBUG = False.
Джордж Полиовей

4
Вы не хотите использовать "*" для производства. Это полностью игнорирует причину и безопасность разрешенных хостов.
Энди Покетт 08
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.