Catatan terbitan Django 1.3.4¶
Oktober 17, 2012
Ini adalah terbitan ke empat di rangkaian Django 1.3.
Peracunan kepala Host¶
Beberapa bagian dari Django -- berdiri sendiri dari aplikasi ditulis-pengguna-akhir -- menggunakan URL penuh, termasuk nama ranah, yang dibangkitkan dari kepala HTTP Host. Beberapa serangan terhadap ini adalah diluar kemampuan Django untuk mengendalikan, dan membutuhkan peladen jaringan untuk secara benar dikonfigurasikan; Dokumentasi Django mempunyai untuk terkadang mengandung catatan menganjurkan pengguna pada konfigurasi tersebut.
Pengurai siap-pakai Django sendiri dari kepala Host, bagaimanapun, masih rentan, ketika telah dilaporkan ke kami baru-baru ini. Pengurai kepala Host di Django 1.3.3 dan Django 1.4.1 -- khususnya, django.http.HttpRequest.get_host()
-- tidak benar menangani informasi nama pengguna/sandi di kepala. Demikian, sebagai contoh, kepala Host berikut akan diterima oleh Django ketika berjalan pada "validsite.com":
Host: validsite.com:random@evilsite.com
Menggunakan ini, seorang penyerang dapat menyebabkan bagian dari Django -- terutama mekanisme setel kembali sandi -- untuk membangkitkan dan menampilkan URL berubah-ubah kepada pengguna.
Untuk memperbaiki ini, mengurai di HttpRequest.get_host()
sedang dirubah; kepala Host yang mengandung isi kemungkinan berbahaya (seperti pasangan nama pengguna/sandi) sekarang memunculkan pengecualian django.core.exceptions.SuspiciousOperation
.
Rincian dari masalah secara inisial ditempatkan daring seperti security advisory.