В производственной среде, почему я слышу, что люди говорят, что отказ от DEBUG = True потенциально опасен?
Что такое один пример, когда кто-то может использовать эту проблему безопасности для выполнения вредоносной задачи на моем сервере?
В производственной среде, почему я слышу, что люди говорят, что отказ от DEBUG = True потенциально опасен?
Что такое один пример, когда кто-то может использовать эту проблему безопасности для выполнения вредоносной задачи на моем сервере?
https://docs.djangoproject.com/en/dev/ref/settings/#debug
"Никогда не развертывайте сайт в процессе работы с включенным DEBUG.
Вы поймали это? НИКОГДА не развертывайте сайт в процессе работы с включенным DEBUG.
Одной из основных особенностей режима отладки является отображение подробных страниц ошибок. Если ваше приложение вызывает исключение, когда DEBUG равно True, Django отобразит подробную трассировку, включая множество метаданных о вашей среде, таких как все установленные в настоящее время настройки Django (от settings.py). "
В принципе, это зияющая дыра в безопасности.
Он также тратит много памяти:
"Также важно помнить, что при запуске с включенным DEBUG, Django будет помнить каждый выполняемый SQL-запрос. Это полезно, когда вы отлаживаете, но он быстро потребляет память на производственном сервере."
Django пытается обезвредить защищенную информацию на странице отладки, но она не идеальна.
По умолчанию любые настройки, которые включают KEY (запуск Django 1.4), SECRET и т.д., автоматически заменяются на *. Однако, если кто-то решает сделать объявление и вызвать SECRET как SECURE_STR или что-то еще, это будет отображаться как обычный текст! Хочешь этого? Кроме того, это просто больше корма для того, чтобы кто-то легко взломал ваш сервер.