У меня есть приложение, работающее с debug = True на удаленном узле где-то. Теперь как-то каждый раз, когда я обращаюсь к REMOTE_ADDR, он возвращает 127.0.0.1 независимо от того, откуда отправляется запрос.Django: request.META ['REMOTE_ADDR'] всегда '127.0.0.1'
Я не уверен, с чего начать и почему это происходит.
Для дальнейшего это, вы можете проверить, если X-Forwarded-For заголовок HTTP присутствует, это должно содержать IP вы хотите. – Lepidosteus
Вы должны быть осторожны, полагаясь на X-Forwarded-For, это легко подделать. На самом деле у Django было промежуточное ПО, которое автоматически устанавливало REMOTE_ADDR на основе X-Forwarded-For, но удаляло его, потому что соблазняло людей полагаться на ненадежную. –
«Легко подделано» вредно. В этом заголовке нет ничего особенного: он похож на любой другой HTTP-заголовок. Если сервер находится за прокси-сервером, почти на 100% уверен, что прокси-сервер удалит существующие заголовки X-Forwarded-For, прежде чем заменять их соответствующими значениями. Однако, если сервер не находится за прокси-сервером, использование заголовков X-Forwarded-For бесполезно, поскольку пользователь может вручную установить этот заголовок. В любом случае, при использовании безопасности на основе IP (рискованно) вы никогда не должны доверять подключениям от прокси. – sleblanc