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

*13 Januari 2015*

Django 1.6.10 memperbaiki beberapa masalah keamanan di 1.6.9.

## Kepala WSGI menipu melalui garis bawah atau penggabungan tanda garis

When HTTP headers are placed into the WSGI environ, they are normalized by
converting to uppercase, converting all dashes to underscores, and prepending
`HTTP_`. For instance, a header `X-Auth-User` would become
`HTTP_X_AUTH_USER` in the WSGI environ (and thus also in Django's
`request.META` dictionary).

Sayangnya, ini berarti bahwa kepungan WSGI tidak dapat membedakan diantara kepala mengandung tanda garis dan kepala mengandung garis bawah: `X-Auth-User` dan `X-Auth_User` keduanya menjadi `HTTP_X_AUTH_USER`. Ini berarti bahwa jika kepala digunakan dalam cara sensitif-keamanan (sebagai contoh, melewatkan informasi otentifikasi bersama dari proxy paling-depan), bahkan jika proxy secara hati-hati melucuti nilai apapun yang datang untuk `X-Auth-User`, seorang penyerang mungkin dapat menyediakan kepala `X-Auth_User` (dengan garis bawah) dan melewatkan perlindungan ini.

Untuk mencegah serangan seperti itu, kedua Nginx dan Apache 2.4+ melucuti semua kepala mengandung garis bawah dari permintaan yang datang secara awalan. Peladen pengembangan siap-pakai Django sekarang melakukan hal sama. Peladen pengembangan Django tidak dianjurkan untuk penggunaan produksi, tetapi mencocokkan perilaku dari produksi umum peladen mengurangi kawasan permukaan untuk perubahan perilaku selama penyebaran.

## 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](/id/6.1/topics/i18n/))
to redirect the user to an "on success" URL. The security checks for these
redirects (namely `django.utils.http.is_safe_url()`) didn't strip leading
whitespace on the tested URL and as such considered URLs like
`\njavascript:...` safe. If a developer relied on `is_safe_url()` to
provide safe redirect targets and put such a URL into a link, they could suffer
from a XSS attack. This bug doesn't affect Django currently, since we only put
this URL into the `Location` response header and browsers seem to ignore
JavaScript there.

## Serangan denial-of-service terhadap `django.views.static.serve`

Di versi terlama dari Django, tampilan [`django.views.static.serve()`](/id/6.1/ref/views/#django.views.static.serve) membaca berkas-berkas itu dilayani satu baris pada satu waktu. Karena itu, berkas besar dengan tidak ada baris baru akan menghasilkan penggunaan memori sama pada ukuran berkas itu. Seorang penyerang dapat memanfaatkan ini dan meluncurkan serangan denial-of-service dengan permintaan banyak berkas besar secara bersama. Tampilan ini sekarang membaca berkas dalam potongan untuk mencegah penggunaan memori besar.

Catat, bagaimanapun bahwa tampilan ini selalu membawa peringatan yang itu tidak mengeras untuk penggunaan produksi dan harus digunakan hanya sebagai bantuan pengembangan. Sekarang mungkin waktu bagus untuk memeriksa peoyek anda dan melayani berkas anda di penggunaan produksi menggunakan peladen jaringan paling-depan sebenarnya jika anda tidak melakukannya.

## Denial-of-service basisdata dengan `ModelMultipleChoiceField`

Diberikan sebuah formulir yang menggunakan `ModelMultipleChoiceField` dan `show_hidden_initial=True` (bukan sebuah dokumentasi API), itu memungkinkan untuk pengguna untuk menyebabkan angka tidak beralasan dari permintaan SQL dengan mengajukan penggandaan nilai untuk data bidang. Logika pengesahan di `ModelMultipleChoiceField` sekarang menghapus penggandaan nilai diajukan ke alamat masalah ini.
