Geçersiz http_host başlığı


109

Django çerçevesini kullanarak bir web sitesi geliştirmeye çalışıyorum ve DigitalOcean.com'u kullanarak başlattım ve gerekli dosyaları django-projesine yerleştirdim.

Django projesine statik dosyalar eklemem gerekiyordu ve statik dosyaları topladıktan sonra ip'imi yenilemeye çalıştım

Web sitesini oluşturmak için kullandığım eğitimleri ekliyorum. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

Aşağıdaki hatayı alıyorum :

DisallowedHost at / Invalid HTTP_HOST üstbilgisi: '198.211.99.20'. ALLOWED_HOSTS'a u'198.211.99.20 'eklemeniz gerekebilir.

Biri bunu düzeltmeme yardım edebilir mi? Bu, Django çerçevesini kullanan ilk web sitem.


Bu aynı zamanda DigitalOcean'daki Yüzen IP adresiniz olabilir.
Poopy McFartnoise

Yanıtlar:


187

Hata günlüğü basittir. Önerildiği gibi, ALLOWED_HOSTSayarınıza 198.211.99.20 eklemeniz gerekiyor .

Proje settings.py dosyanızda şu şekilde ayarlayın ALLOWED_HOSTS:

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

Daha fazla okumak için buradan okuyun.


Şimdi aşağıdaki hatayı alıyorum İstek URL'si: 198.211.99.20 İstisna Türü: TemplateDoesNotExist İstisna Değer: kişisel / home.html İstisna Konumu: /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py get_template, satır 25'te şablonlarım şu klasörde var / home / django / django_project / personal / templates / personal
Kathiravan Natarajan

@Kathir Bu hatanın birçok örneği var, sadece google ve eğer sorun devam ederse lütfen ayrı bir soru olarak sorun, yorumlar çok açıklayıcı değil.
Prakhar Trivedi

Bu kesinlikle işe yarıyor, ancak her zaman bir .env dosyası kullanmanız gerektiği için kötü bir uygulamadır
Abhishek Jebaraj

@AbhishekJebaraj lütfen biraz daha açıklar mısınız veya daha fazla açıklama ile bir bağlantı paylaşır mısınız?
Jesus Almaral - Hackaprende

1
@JesusAlmaral Bir .env dosyası, parolaları ve diğer hassas bilgileri içeren yerel bir dosyadır. Tüm bu hassas bilgileri kodunuzun içine koyarsanız, o zaman tehlikeye girebilir. Bu nedenle, bu yerel .env dosyasını kullanıyoruz ve herkes kendi şifreleri ile yerel olarak depolar
Abhishek Jebaraj

0

settings.py

ALLOWED_HOSTS = ['*']

2
Pydanny'nin dediği gibi "... bunu bir kez anladıktan sonra onu böyle bırakmayın. Nedeni, Django'yu HTTP_HOST başlık saldırılarına karşı potansiyel olarak savunmasız kılıyor. Ve otomatik komut dosyaları, sitelerin bu güvenlik açığına sahip olup olmadığını kontrol etmek için interneti araştırıyor." github.com/pydanny/cookiecutter-django/issues/…
javidazac

6
Lol, bu geliştirme env. üretimde sadece DEBUG = False olarak ayarlanması gerekir.
George Poliovei

4
Üretim için '*' kullanmak istemezsiniz. Bu, izin verilen ana bilgisayarların nedenini ve güvenliğini tamamen atlar.
Andy Poquette
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.