Notas de lanzamiento de Django 1.8.4

18 de agosto de 2015

Django 1.8.4 corrige un problema de seguridad y varios errores en 1.8.3.

Posibilidad de denegación de servicio en la vista logout() al llenar el almacenamiento de sesión

Anteriormente, un sesión podría crearse cuando se accediera anónimamente a la vista django.contrib.auth.views.logout() (a menos que estuviera decorada con login_required() como se hace en el panel de administración). Esto podría permitir a un atacante crear fácilmente muchos nuevos registros de sesión enviando solicitudes repetidas, potencialmente llenando el almacenamiento de sesiones o causando que los registros de sesión de otros usuarios sean expulsados.

La clase SessionMiddleware ha sido modificada para no crear registros de sesión vacíos, incluyendo cuando SESSION_SAVE_EVERY_REQUEST está activo.

Bugfixes

  • Se agregó la capacidad de serializar valores desde el campo UUIDField recién agregado (#25019).

  • Se agregó una advertencia de comprobación del sistema si las configuraciones TEMPLATE_* antiguas están definidas además de la nueva configuración TEMPLATES.

  • Se ha corregido QuerySet.raw() para que no se levante InvalidQuery cuando se utiliza el nombre de columna db_column de un campo ForeignKey con primary_key=True (#12768).

  • Se evitó una excepción en TestCase.setUpTestData() desde la transacción (#25176).

  • Se ha corregido el método has_changed() en contrib.postgres.forms.HStoreField (#25215, #25233).

  • Se ha corregido la grabación de las migraciones aplastadas cuando se ejecuta el comando migrate (#25231).

  • Moved el chequeo de pérdida de datos de la asignación de instancia de modelo no guardada (<unsaved-model-instance-check-18>) a Model.save() para permitir un uso más fácil de modelos en memoria (#25160).

  • Evitó los índices varchar_patterns_ops y text_patterns_ops para el campo ArrayField (#25180).