Tajuk http_host tidak valid

109

Saya mencoba mengembangkan situs web menggunakan kerangka kerja Django dan diluncurkan menggunakan DigitalOcean.com dan menyebarkan file yang diperlukan ke dalam proyek-django.

Saya harus memasukkan berkas statis ke dalam proyek-Dj dan Setelah mengumpulkan berkas statis, saya mencoba menyegarkan ip saya

Saya menyertakan tutorial yang telah saya gunakan untuk membuat situs web. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

Saya mendapatkan kesalahan berikut:

DisallowedHost di / Header HTTP_HOST tidak valid: '198.211.99.20'. Anda mungkin perlu menambahkan u'198.211.99.20 'ke ALLOWED_HOSTS.

Adakah yang bisa membantu saya untuk memperbaikinya? Ini adalah situs web pertama saya menggunakan kerangka Django.

Kathiravan Natarajan
sumber
Itu mungkin juga alamat IP Terapung Anda di DigitalOcean.
Poopy McFartnoise

Jawaban:

184

Log kesalahan sangat mudah. Seperti yang disarankan, Anda perlu menambahkan 198.211.99.20 ke ALLOWED_HOSTSpengaturan Anda .

Dalam file settings.py proyek Anda, setel ALLOWED_HOSTSseperti ini:

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

Untuk bacaan lebih lanjut, baca dari sini.

Prakhar Trivedi
sumber
Sekarang mendapatkan kesalahan URL Permintaan berikut: 198.211.99.20 Jenis Pengecualian: TemplateDoesNotExist Nilai Pengecualian: personal / home.html Lokasi Pengecualian: /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py di get_template, baris 25 Saya memiliki template saya di folder berikut / home / django / django_project / personal / templates / personal
Kathiravan Natarajan
@Kathir Ada banyak contoh kesalahan itu. Cukup google saja dan jika masalah masih berlanjut, maka tanyakan sebagai pertanyaan terpisah, komentar tidak terlalu deskriptif.
Prakhar Trivedi
Ini pasti berhasil tetapi praktiknya buruk karena Anda harus selalu menggunakan file
.env
@AbhishekJebaraj dapatkah Anda menjelaskan lebih banyak atau membagikan tautan dengan penjelasan lebih lanjut?
Jesus Almaral - Hackaprende
1
@JesusAlmaral File .env adalah file lokal yang berisi sandi dan informasi sensitif lainnya. Jika Anda memasukkan semua informasi sensitif ini ke dalam kode Anda sendiri, maka kode itu dapat disusupi. Jadi kami menggunakan file lokal ini .env dan semua orang menyimpan dengan kata sandi mereka sendiri dll secara lokal
Abhishek Jebaraj
0

settings.py

ALLOWED_HOSTS = ['*']
George Poliovei
sumber
2
Seperti kata pydanny "... jangan biarkan seperti itu setelah Anda mengetahui ini. Alasannya adalah yang membuat Django berpotensi rentan terhadap serangan tajuk HTTP_HOST. Dan skrip otomatis menjelajahi internet untuk memeriksa apakah situs memiliki kerentanan ini." github.com/pydanny/cookiecutter-django/issues/…
javidazac
6
Lol, itu untuk pengembangan env. dalam produksi hanya perlu menyetel DEBUG = False.
George Poliovei
4
Anda tidak ingin menggunakan '*' untuk produksi. Ini sepenuhnya mengabaikan alasan dan keamanan host yang diizinkan.
Andy Poquette
@radtek - masuk satu direktori lebih dalam, Anda mengedit settings.py yang salah
birdmw