Catatan terbitan Django 1.10.3¶
1 November 2016
Django 1.10.3 memperbaiki dua masalah keamanan dan beberapa kesalahan di 1.10.2.
Pengguna dengan sandi kode keras dibuat ketika menjalankan percobaan pada Oracle¶
Ketika menjalankan percobaan dengan basisdata Oracle, Django membuat basisdata sementara pengguna. Di versi terlama, jika sandi tidak secara manual ditentukan di pengaturan basisdata kamus TEST
, sebuah kode keras sandi digunakan. Inidapat mengizinkan penyerang dengan akses jaringan ke peladen basisdata untuk terhubung.
Pengguna ini biasanya dibuang setelah rangkaian percobaan selesai, tetapi tidak ketika menggunakan pilihan manage.py test --keepdb
atau jika pengguna mempunyai sesi aktif (seperti seorang hubungan penyerang).
Secara acak sandi dibangkitkan sekarang digunakan untuk setiap pejalan percobaan.
Kerentanan pengikatan kembali DNS ketika DEBUG=True
¶
Versi terlama dari Django tidak mensahkan kepala Host
terhadap settings.ALLOWED_HOSTS
ketika settings.DEBUG=True
. Ini membuat mereka rentan pada DNS rebinding attack.
Selagi Django tidak dibekali modul yang mengizinkan pengerjaan kode secara terpencil, ini setidaknya vektor cross-site scripting, yang dapat sangat serius jika pengembang memuat salinan dari basisdata produksi di pengembangan atau terhubung ke beberapa layanan produksi untuk dimana tidak ada instance pengembangan, sebagai contoh. Jika sebuah proyek menggunakan sebuah paket seperti django-debug-toolbar
, kemudian penyerang dapa menjalankan SQL yang berubah-ubah, yang dapat khususnya buruk jika pengembang terhubung ke basisdata dengan akun superuser.
settings.ALLOWED_HOSTS
sekarang disahkan meskipun DEBUG
. Untuk kemnyamanan, jika ALLOWED_HOSTS
adalah kosong dan DEBUG=True
, perbedaan berikut dari localhost diizinkan ['localhost', '127.0.0.1', '::1']
. Jika berkas pengaturan lokal anda mempunyai produksi anda nilai ALLOWED_HOSTS
, anda harus sekarang menghilangkan itu untuk mendapatkan nilai fallback tersebut.
Perbaikan kesalahan¶
- Diizinkan milik
User.is_authenticated
danUser.is_anonymous
untuk dicobakan untukset
keanggotaan (#27309). - Diperbaiki sebuah pemulihan penampilan ketika menjalankan
migrate
di proyek dengan tindakanRenameModel
(#27279). - Ditambahkan
model_name
pada panggilanallow_migrate()
dimakemigrations
(#27200). - Membuat tampilan
JavaScriptCatalog
mematuhi argumenpackages
; sebelumnya dia diabaikan (#27374). - Diperbaiki
QuerySet.bulk_create()
pada PostgreSQL ketika sejumlah obyek adalah banyak ditambah satu daribatch_size
(#27385). - Dicegah
i18n_patterns()
dari menggunakan terlalu banyak dari URL sebagai bahasa untuk memperbaki kasus penggunaan untukprefix_default_language=False
(#27063). - Diganti sebuah kemungkinan pengalihan tidak benar dari
SessionMiddleware
ketika sebuah sesi dihancurkan di permintaan yang berbarengan dengan sebuahSuspiciousOperation
untuk mengarahkan bahwa permintaan tidak dapat dilengkapi (#27363).