Примечания к выпуску Django 1.1.3

Добро пожаловать в Django 1.1.3!

Это третий выпуск с исправлением ошибок в серии Django 1.1, улучшающий стабильность и производительность кодовой базы Django 1.1.

За одним исключением, Django 1.1.3 поддерживает обратную совместимость с Django 1.1.2. Он также содержит ряд исправлений и других улучшений. Django 1.1.2 - это рекомендуемое обновление для любой разработки или развертывания, в настоящее время использующей или нацеленной на Django 1.1.

Полную информацию о новых функциях, обратной несовместимости и устаревших функциях в ветке 1.1 см. В примечаниях к выпуску Django 1.1 .

Обратно несовместимые изменения

Ограниченные фильтры в админке

Административный интерфейс Django django.contrib.adminподдерживает фильтрацию отображаемых списков объектов по полям соответствующих моделей, в том числе по отношениям на уровне базы данных. Это реализуется путем передачи аргументов поиска в части строки запроса URL-адреса, а параметры в классе ModelAdmin позволяют разработчикам указывать определенные поля или отношения, которые будут генерировать автоматические ссылки для фильтрации.

Одна исторически недокументированная и неофициально поддерживаемая функция заключалась в возможности пользователя с достаточным знанием структуры модели и формата этих аргументов поиска изобретать новые полезные фильтры на лету, манипулируя строкой запроса.

Однако было продемонстрировано, что этим можно злоупотреблять для получения доступа к информации вне разрешений администратора; например, злоумышленник с доступом к администратору и достаточным знанием структуры модели и отношений может построить строки запроса, которые - при многократном использовании поиска по регулярным выражениям, поддерживаемого API базы данных Django, - раскрывают конфиденциальную информацию, такую ​​как хэши паролей пользователей.

Чтобы исправить это, django.contrib.adminтеперь будет проверяться, что аргументы поиска строки запроса либо указывают только поля в просматриваемой модели, либо перекрестные отношения, которые были явно разрешены разработчиком приложения с использованием ранее существовавшего механизма, упомянутого выше. Это обратно несовместимо для любых пользователей, полагающихся на предыдущую возможность вставлять произвольные поисковые запросы.

Copyright ©2021 All rights reserved