Сообщите Flask, что он находится за прокси-сервером
При использовании обратного прокси-сервера или многих платформ хостинга Python прокси-сервер перехватывает и пересылает все внешние запросы локальному WSGI-серверу.
С точки зрения WSGI-сервера и приложения Flask запросы теперь поступают с HTTP-сервера на локальный адрес, а не с удаленного адреса на адрес внешнего сервера.
HTTP-серверы должны устанавливать X-Forwarded- заголовки, чтобы передавать реальные значения приложению. Затем приложение можно настроить на доверие и использование этих значений, обернув его с помощью middleware X-Forwarded-For Proxy Fix, предоставляемого Werkzeug.
Этот middleware следует использовать только в том случае, если приложение действительно находится за прокси-сервером, и его следует настроить на количество прокси-серверов, которые объединены перед ним. Не все прокси-серверы устанавливают все заголовки. Поскольку входящие заголовки могут быть сфальсифицированы, вы должны указать, сколько прокси-серверов устанавливают каждый заголовок, чтобы middleware знал, чему доверять.
from werkzeug.middleware.proxy_fix import ProxyFix
app.wsgi_app = ProxyFix(
app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_prefix=1
)
Помните, применяйте этот middleware только если вы находитесь за прокси-сервером, и установите правильное количество прокси-серверов, которые устанавливают каждый заголовок. Неправильная настройка может быть проблемой безопасности.
© 2010 Pallets
Licensed under the BSD 3-clause License.
https://flask.palletsprojects.com/en/3.0.x/deploying/proxy_fix/