Сценарий: я нахожусь на моем веб-сайте http://domain.com/, и вижу контент, который мне нужно модерировать.Я нажимаю ссылку «Администратор этой страницы», чтобы открыть ее на новой вкладке, которая отправляет меня на https://domain.com/myadmin/, и я повторно аутентифицируюсь, перехожу на соответствующую панель модерации моего сайта, выполняю свою работу и обычно покидаю эту вкладку.open.
Теперь вернемся к не-SSL-версии сайта, я перехожу на другие страницы и т. д., вижу что-то еще, чтобы модерировать, и возвращаю ли я свой старый домен https: //.com / myadmin / tab или откройте другую новую вкладку https: //domain.com/myadmin/, внезапно мой старый сеанс пропал, и я должен повторно пройти аутентификацию.
В настоящее время данные нашего сеанса хранятсяв Memcache.Наш узел с поддержкой SSL - это один компьютер.Наш не-SSL-сайт сбалансирован по нагрузке более чем с дюжиной узлов.Все узлы имеют общую кодовую базу через NFS, поэтому код идентичен на всех узлах, безопасный или нет.
После долгих потаенных чтений я подумал, не связано ли это с настройкой php.iniof session.cookie_secure ... но поскольку мы заставляем всех, кто использует защищенную / myadmin / panel, повторно проходить аутентификацию, кажется, что защищенный сеанс просто исчезает.
Я думаю, что проблема является локальной для узла, которыйответы на запросы SSL.Если мы откроем вкладку для https: //domain.com/myadmin/ и войдем в систему, а затем удалим путь / myadmin / и просто перейдем по всему сайту как https: //domain.com/, кажется, что наша сессия никогда не исчезнет,Но как только мы нажимаем на ссылку в браузере, которая вынуждает нас перейти на небезопасную версию сайта, наша безопасная сессия становится бесполезной.