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 dan blocktrans menerima harfiah dibungkus dalam kutipan tunggal (#18881).

  • Banyak sekali dokumentasi perbaikan dan pembetulan

Back to Top