---
title: "Catatan terbitan Django 1.8.10"
version: 1.11
locale: id
source: https://docs.djangoproject.com/id/1.11/releases/1.8.10/
canonical: https://djangodocs.dev/id/1.11/releases/1.8.10/
---
# Catatan terbitan Django 1.8.10

*1 Maret 2016*

Django 1.8.10 memperbaiki dua masalah keamanan dan beberapa kesalahan di 1.8.9.

## CVE-2016-2512: Pengalihan berbahaya dan kemungkinan serangan XSS melalui URL pengalihan disediakan-pengguna mengandung autentifikasi dasar

Django bergantung pada masukan pengguna dalam beberapa kasus (sebagai contoh [`django.contrib.auth.views.login()`](/id/1.11/topics/auth/default/#django.contrib.auth.views.login) dan [i18n](/id/1.11/topics/i18n/)) untuk mengalihkan pengguna ke sebuah URL "on success". Pemeriksaan keamanan untuk pengalihan ini (bernama `django.utils.http.is_safe_url()`) dianggap beberapa URL dengan surat kepercayaan autentifikasi dasar "safe" ketika mereka tidak seharusnya.

Sebagai contoh, sebuah URL seperti `http://mysite.example.com\@attacker.com` akan dianggap aman jika rumah permintaan adalah `http://mysite.example.com`, tetapi mengalihkan ke URL ini mengirim pengguna ke `attacker.com`.

Juga, jika seorang pengembang bergantung pada `is_safe_url()` untuk menyediakan sasaran pengalihan dan menaruh URL seperti itu kedalam sebuah tautan, mereka dapat menderita dari serangan XSS.

## CVE-2016-2513: Pendaftaran pengguna melalui perbedaan pewaktuan pada peningkatan faktor pekerjaan pengacak sandi

Di setiap versi utama dari Django sejak 1.6, angka awal dari perputaran untuk `PBKDF2PasswordHasher` dan subkelasnya telah ditingkatkan. Ini memperbaiki keamanan dari sandi seperti kecepatan dari perangkat keras meningkat, bagaimanapun, itu juga membuat perbedaan pewaktu diantara sebuah permintaan masuk untuk  pengguna dengan sandi dikodekan dalam angka terlama dari putaran dan permintaan masuk untuk pengguna yang tidak ada (yang menjalankan nomor default pengacak bawaan untuk putaran sejak Django 1.6).

Ini hanya mempengaruhi pengguna yang tidak masuk sejak perulangan ditingkatkan. Pertama kali pengguna masuk setelah sebuah perputaran meningkat, sandi mereka diperbaharui dengan perputaran baru dan tidak lagi sebuah perbedaan pewaktuan.

Metode `BasePasswordHasher.harden_runtime()` baru mengizinkan pencampur menjembatani jarak waktu berjalan diantara faktor pekerjaan (sebagai contoh perputaran) disokong dalam sandi dikodekan yang ada dan faktor pekerjaan awal dari pencampur. Cara ini diterapkan untuk `PBKDF2PasswordHasher` dan `BCryptPasswordHasher`. Sejumlah putaran untuk pencampur terakhir belum berubah sejak Django 1.4, tetapi beberapa proyek mungkin mensubkelaskannya dan meningkatkan faktor pekerjaan sesuai kebutuhan.

Sebuah peringatan akan dikeluarkan untuk tiap [third-party password hashers that don't implement](/id/1.11/topics/auth/passwords/#write-your-own-password-hasher) sebuah metode `harden_runtime()`.

Jika anda mempunyai pencampur sandi berbeda di basisdata anda (seperti pencampur SHA1 dari pengguna yang belum masuk sejak pengacak awal diganti ke PBKDF2 in Django 1.4), perbedaan pewaktu pada permintaan masuk untuk pengguna ini mungkin lebih hebat dan perbaikan ini tidak memperbaiki perbedaan itu (atau tiap perbedaan ketika merubah pencampur). Anda dapat [upgrade those hashes](/id/1.11/topics/auth/passwords/#wrapping-password-hashers) untuk mencegah serangan pewaktu untuk kasus itu.

## Perbaikan kesalahan

- Diperbaiki sebuah tabrakan pada PostgreSQL yang dicegah menggunakan `TIME_ZONE=None` dan `USE_TZ=False` ([#26177](https://code.djangoproject.com/ticket/26177)).
- Ditambahkan sistem pemeriksaan untuk meminta tabrakan nama dari hubungan tersembunyi ([#26162](https://code.djangoproject.com/ticket/26162)).
- Dibuat dapat di pickle `forms.FileField` dan `utils.translation.lazy_number()` ([#26212](https://code.djangoproject.com/ticket/26212)).
- Diperbaiki serialisasi [`RangeField`](/id/1.11/ref/contrib/postgres/fields/#django.contrib.postgres.fields.RangeField) dan [`ArrayField`](/id/1.11/ref/contrib/postgres/fields/#django.contrib.postgres.fields.ArrayField) dengan nilai `None` ([#26215](https://code.djangoproject.com/ticket/26215)).
- Mengizinkan kembali tanda garis di nama ranah tingkat-atas dari URL diperiksa oleh `URLValidator` untuk memperbaiki sebuah pemulihan di Django 1.8 ([#26204](https://code.djangoproject.com/ticket/26204)).
- Diperbaiki `BoundField` untuk diizinkan kembali potongan-potongan dari subwidget ([#26267](https://code.djangoproject.com/ticket/26267)).
- Dicegah instance `ContentTypeManager` dari berbagi cache mereka ([#26286](https://code.djangoproject.com/ticket/26286)).
