Oktober 17, 2012
Ini adalah terbitan keamanan ke dua di rangkaian Django 1.4.
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.
GenericIPAddressField telah dipakai untuk mencocokkan dari semua bidang model lainnya. Argumen kata kunci kedua pertama sekarang verbose_name dan name.trans dan blocktrans menerima harfiah dibungkus dalam kutipan tunggal (#18881).Mar 30, 2019