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 relies on user input in some cases (e.g. django.contrib.auth.views.login() and i18n) to redirect the user to an "on success" URL. The security checks for these redirects (namely django.utils.http.is_safe_url()) accepted URLs with leading control characters and so considered URLs like \x08javascript:... safe. This issue doesn't affect Django currently, since we only put this URL into the Location response header and browsers seem to ignore JavaScript there. Browsers we tested also treat URLs prefixed with control characters such as %08//example.com as relative paths so redirection to an unsafe target isn't a problem either.

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