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 bergantung pada masukan pengguna di beberapa kasus (sebagai contoh func:django.contrib.auth.views.login, django.contrib.comments, and i18n) untuk mengalihkan pengguna ke sebuah URL “on success”. Pemeriksaan keamanan untuk pengalihan ini (bernama django.utils.http.is_safe_url()) tidak dengan benar mengesahkanbeberpa URL jelek, seperti http:\\\djangoproject.com, yang diterima oleh beberapa peramban dengan lebih liberal mengurai URL.

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 obyek F (#22429).

  • Dihindari menimpa data diambil dari select_related() di beberapa kasus yang dapat menyebabkan pemulihan penampilan kecil (#22508).

Back to Top