Catatan terbitan Django 1.6.5¶
14 Mei 2014
Django 1.6.5 memperbaiki beberapa masalah keamanan di 1.6.4.
Masalah: Tembolok mungkin secara tidak benar mengizinkan untuk menyimpan dan melayani data pribadi¶
Dalam situasi tertentu, Django mungkin mengizinkan tembolok menyimpan data pribadi terkait pada sesi tertentu dan kemudian melayani data itu untuk meminta dengan sesi berbeda, atau tidak ada sesi sama sekali. Ini dapat membawa ke penyingkapan informasi dan dapat menjadi menunjukan untuk peracunan tembolok.
Ketiak menggunakan sesi Django, Django akan menyetel kepala Vary: Cookie
untuk memastikan tembolok tidak melayani data tembolok untuk meminta dari sesi lainnya. Bagaimanapun, versi terlama dari Internet Explorer (kebanyakan hanya Internet Explorer 6, dan Internet Explorer 7 jika berjalan pada Windows XP atau Windows Server 2003) tidak dapat menangani kepala Vary
di perpaduan dengan banyak jenis isi. Karena itu, Django akan memindahkan kepala jika permintaan telah dibuat oleh Internet Explorer.
Untuk memperbaiki ini, perilaku khusus untuk versi Internet Explorer terlama ini telah dipindahkan, dan kepala Vary
tidak lagi dipilah dari tanggapan. Sebagai tambahan, perubahan pada kepala Cache-Control
untuk semua permintaan Internet Explorer dengan kepala Content-Disposition
telah dipindahkan ketika mereka telah menemukan untuk memiliki masalah yang sama.
Masalah: URL pengalihan yang jelek dari masukan pengguna tidak benar disahkan¶
Pengesahan untuk pengalihan tidak dengan benar mengesahkan beberapa URL jelek, yang diterima oleh beberapa peramban. Ini mengizinkan pengguna untuk dialihkan pada UTL tidak aman tiba-tiba.
Django relies on user input in some cases (e.g.
django.contrib.auth.views.login()
, django.contrib.comments
, and
i18n) to redirect the user to an "on success" URL.
The security checks for these redirects (namely
django.utils.http.is_safe_url()
) did not correctly validate some malformed
URLs, such as http:\\\djangoproject.com, which are accepted by some browsers
with more liberal URL parsing.
Untuk memperbaiki ini, pengesahan di is_safe_url()
telah diperketa utuk dapat menangani dan mengesahkan dengan benar URL jelek ini.
Perbaikan kesalahan¶
- Dibuat metode backend Oracle
year_lookup_bounds_for_datetime_field
kesesuaian Python 3 (#22551). - Diperbaiki kegagalan
pgettext_lazy
ketika menerima isi bytestring pada Python 2 (#22565). - Diperbaiki SQL dibangkitkan ketika menyaring dengan meniadakan obyek
Q
yang mengandung sebuah obyekF
(#22429). - Dihindari menimpa data diambil dari
select_related()
di beberapa kasus yang dapat menyebabkan pemulihan penampilan kecil (#22508).