Django - Должен ли я установить show_toolbar в рабочей среде для пользователей управления? - PullRequest
3 голосов
/ 08 февраля 2020

Я развертываю свой Django сервер для производства. Очевидно, у меня есть настройки DEBUG = False, но мне было интересно, смогу ли я безопасно установить SHOW_TOOLBAR_CALLBACK для моей функции, которая будет возвращать True, когда пользователь является управляющим пользователем. Например:

def show_toolbar(req):
    return (not req.is_ajax()) and req.user.is_authenticated and req.user.email == "admin@company.com"

Разве это не безопасно? Есть ли причина НЕ делать этого?

1 Ответ

1 голос
/ 09 февраля 2020

Существует несколько причин, по которым это все еще рискованно:

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

  2. Панель инструментов отладки использует AJAX представления для обслуживания. отладочная информация. В то время как эти представления проверяют разрешения, их использование в производственном процессе открывает еще один вектор атаки, когда кто-то может манипулировать кодом на стороне клиента, чтобы управляющий пользователь мог выполнять AJAX запросов в фоновом режиме для получения данных с этих URL-адресов без участия пользователя. зная об этом.

Оба эти риска требуют от go другого неправильного - вопрос в том, насколько глубоко вы цените защиту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...