En-tête http_host non valide

109

J'essaie de développer un site Web en utilisant le framework Django et je l'ai lancé avec DigitalOcean.com et j'ai déployé les fichiers nécessaires dans django-project.

J'ai dû inclure des fichiers statiques dans Django-project et après avoir collecté des fichiers statiques, j'ai essayé de rafraîchir mon ip

J'inclus les tutoriels que j'ai utilisés pour créer le site Web. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

Je reçois l'erreur suivante :

DisallowedHost at / En-tête HTTP_HOST non valide: '198.211.99.20'. Vous devrez peut-être ajouter u'198.211.99.20 'à ALLOWED_HOSTS.

Quelqu'un peut-il m'aider à résoudre ce problème? Ceci est mon premier site Web utilisant le framework Django.

Kathiravan Natarajan
la source
Cela peut également être votre adresse IP flottante sur DigitalOcean.
Poopy McFartnoise

Réponses:

185

Le journal des erreurs est simple. Comme il l'a suggéré, vous devez ajouter 198.211.99.20 à votre ALLOWED_HOSTSparamètre.

Dans le fichier settings.py de votre projet, définissez ALLOWED_HOSTScomme ceci:

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

Pour en savoir plus, lisez ici.

Prakhar Trivedi
la source
Obtention de l'erreur suivante URL de demande: 198.211.99.20 Type d'exception: TemplateDoesNotExist Valeur de l'exception: personal / home.html Emplacement de l'exception: /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py dans get_template, ligne 25 J'ai mes modèles dans le dossier suivant / home / django / django_project / personal / templates / personal
Kathiravan Natarajan
@Kathir Il existe de nombreux exemples de cette erreur. Il suffit de rechercher sur Google et si le problème persiste, posez-le comme une question distincte, les commentaires ne sont pas très descriptifs.
Prakhar Trivedi
Cela fonctionne certainement mais est une mauvaise pratique car vous devriez toujours utiliser un fichier .env
Abhishek Jebaraj
@AbhishekJebaraj pourriez-vous s'il vous plaît expliquer un peu plus ou partager un lien avec plus d'explications?
Jesus Almaral - Hackaprende
1
@JesusAlmaral Un fichier .env est un fichier local contenant des mots de passe et d'autres informations sensibles. Si vous mettez toutes ces informations sensibles dans votre code lui-même, cela pourrait être compromis. Ainsi, nous utilisons ce fichier local .env et tout le monde stocke avec ses propres mots de passe, etc. localement
Abhishek Jebaraj
0

settings.py

ALLOWED_HOSTS = ['*']
George Poliovei
la source
2
Comme l'a dit pydanny "... ne le laissez pas comme tel une fois que vous avez compris cela. La raison en est que Django est potentiellement vulnérable aux attaques d'en-tête HTTP_HOST. Et les scripts automatisés parcourent Internet pour vérifier si les sites ont cette vulnérabilité." github.com/pydanny/cookiecutter-django/issues/…
javidazac
6
Lol, c'est pour le développement env. en production, il suffit de définir DEBUG = False.
George Poliovei
4
Vous ne souhaitez pas utiliser «*» pour la production. Cela contourne complètement la raison et la sécurité des hôtes autorisés.
Andy Poquette
@radtek - allez plus loin dans un répertoire, vous modifiez le mauvais settings.py
birdmw