Почему бы просто не установить ALLOWED_HOSTS в Django на ["*"]?

Я понимаю, почему валидация заголовка хоста важна, но не понимаю, почему за это должен отвечать Django.

В документах по настройкам загадочно упоминается

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

и в документации по проверке заголовка хоста упоминается нечто подобное:

Поскольку даже, казалось бы, надежные конфигурации веб-серверов подвержены влиянию поддельных заголовков Host

.

и

В предыдущих версиях этого документа рекомендовалось настроить веб-сервер таким образом, чтобы он проверял входящие HTTP-заголовки Host. Хотя это по-прежнему рекомендуется, во многих распространенных веб-серверах конфигурация, которая, как кажется, проверяет заголовок Host, на самом деле может этого не делать. Например, даже если Apache [...]


В 2024 году есть ли еще причины бояться этих "многих" (недокументированных) "кажущихся безопасными конфигураций сервера" или я могу просто использовать вменяемый прокси-сервер и позволить ему выполнять проверку вместо этого? Установка ALLOWED_HOSTS на ["*"] устраняет еще одну вещь, о которой нужно думать при развертывании.

Профессиональная паранойя!

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

Вернуться на верх