Сессия Django запутывается за прокси, уже вошли в систему - PullRequest
0 голосов
/ 31 января 2011

В настоящее время у нас есть некоторые проблемы с пользователем нашего продукта, который использует прокси-сервер в своей внутренней сети.

По словам их системного администратора, прокси открыт для портов 80 и 443 и ничего не делает с файлами cookie и т. Д., Только блокирует некоторые сайты.

Проблема: когда пользователь X входит в наше приложение, пользователь Y также входит в систему на компьютере, который ранее не использовал приложение (но имеет тот же прокси-сервер) ?! Это не должно быть возможно (используется приложение аутентификации по умолчанию в django)?

Мы используем Apache, Nginx, Django 1.0 и Postgresql. Также обратите внимание, что он работает при запуске с runserver, но не с nginx.

Это происходит только с этим пользователем с прокси, в других сетях это работает.

Кто-нибудь испытывал это раньше? Если да, то как ты решил это?

Заранее спасибо!

Stefan

1 Ответ

0 голосов
/ 17 февраля 2011

Это может быть проблемой при отправке заголовков, связанных с кэшем, например, Cache-Control. По умолчанию ничто не мешает прокси-серверу кэшировать страницы, обслуживаемые вошедшими в систему пользователями. Отправляя Cache-Control: private или Cache-Control: max-age = 0, вы указываете прокси-серверу вообще не кэшировать страницу, что необходимо для личных страниц.

Вы можете управлять этим с помощью декоратора cache_page для каждого просмотра, или установив CACHE_MIDDLEWARE_ANONYMOUS_ONLY = True, чтобы полностью отключить кэширование для зарегистрированных пользователей. Конечно, это может замедлить вашу страницу, в зависимости от того, насколько она сложна. В этом случае вам может потребоваться более детальное кэширование.

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