Catatan terbitan Django 1.7.7

18 Maret 2015

Django 1.7.7 memperbaiki beberapa kesalahan dan masalah keamanan di 1.7.6.

Kemungkinan denial-of-service dengan strip_tags()

Tahun lalu strip_tags() telah berubah untuk bekerja secara berulang. Masalah adalah bahwa ukuran dari masukan itu sedang olah dapat meningkat di setiap perulangan yang menghasilkan di perulangan tidak berujung di strip_tags(). Masalah ini hanya mempengaruhi versi dari Python yang belum menerima a bugfix in HTMLParser; dinamai Python < 2.7.7 and 3.3.5. Beberapa penjaja sistem operasi juga menghubungkan perbaikan untuk kesalahan Python kedalam paket mereka dari versi paling awal.

Untuk memperbaiki masalah ini, strip_tags() akan sekarang mengembalikan masukan asli jika itu mengetahui panjang dari string itu sedang oleh meningkat. Ingat bahwa mutlak TIDAK ada jaminan disediakan tentang hasil dari strip_tags() menjadi aman HTML. jadi JANGAN PERNAH menandai aman hasil dari panggilan strip_tags() tanpa meloloskan itu pertama, sebagai contoh dengan escape().

Mengurangi kemungkinan serangan XSS melalui mengalihkan URL penyediaan-pengguna

Django bergantung pada masukan pengguna di beberapa kasus (sebagai contoh django.contrib.auth.views.login() and i18n) untuk mengalihkan pengguna pada URL "on success". Pemeriksaan keamanan untuk pengalihan ini (bernama django.utils.http.is_safe_url()) URL diterima dengan karakter pengendali terkemuka dan jadi URL dipertimbangkan seperti aman \x08javascript:.... Masalah ini tidak mempengaruhi Django saat ini, sejak kami hanya menaruh URL ini kedalam kepala tanggapan Location dan peramban kelihatannya mengabaikan JavaScript disana. Peramban kami cobakan juga memperlakukan awalan URL dengan karakter kendali seperti %08//example.com sebagai jalur relatif jadi pengalihan pada sasaran tidak aman tidaklah masalah juga.

Bagaimanapun, jika seorang pengembang bergantung pada is_safe_url() untuk menyediakan ssaran pengalihan aman dan menaruh URL itu kedalam sebuah tautan, mereka dapat menderita dari sebuah serangan XSS ketika beberapa peramban seperti Google Chrome mengabaikan kendali karakter pada awal dari URL di sebuah jangkar href.

Perbaikan kesalahan

  • Diperbaiki manamai kembali dari kelas-kelas di perpindahan ketika menamai kembali sebuah subkelas akan menyebabkan keadaan tidak benar untuk direkam untuk obyek yang mengacu superkelas (#24354).
  • DIhentikan menulis berkas-berkas perpindahan dalam suasana percobaan ketika menggabungkan pertentangan perpindahan. Ketika makemigrations --merge dipanggil dengan verbosity=3 berkas perpindahan ditulis menjadi stdout (#24427).
Back to Top