Catatan terbitan Django 1.4.2¶
Oktober 17, 2012
Ini adalah terbitan keamanan ke dua di rangkaian Django 1.4.
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.
Perubahan bertentangan kebelakang¶
- Baru diperkenalkan argumen pembangun
GenericIPAddressField
telah dipakai untuk mencocokkan dari semua bidang model lainnya. Argumen kata kunci kedua pertama sekarang verbose_name dan name.
Perbaikan kesalahan dan perubahan lain¶
- Subkelas HTMLParser hanya untuk versi Python yang sesuai (#18239).
- Ditambahkan argumen batch_size ke qs.bulk_create() (#17788).
- Diperbaiki sebuah pemulihan kecil di saringan admin dimana tanggal berbentuk salah dilewatkan sebagai parameter url menyebabkan sebuah ValidationError tidak tertangani (#18530).
- Diperbaiki sebuah kesalahan perulangan tidak berakhir ketika mengakses perizinan di cetakan (#18979)
- Diperbaiki beberapa masalah kesesuaian Python 2.5
- Diperbaiki sebuah masalah dengan nama berkas dikutip di kepala Content-Disposition (#19006)
- DIbuat pilihan konteks di etiket
trans
danblocktrans
menerima harfiah dibungkus dalam kutipan tunggal (#18881). - Banyak sekali dokumentasi perbaikan dan pembetulan