Наверное это все-таки проблемы с безопасностью

Где возникла проблема: На любой версии

Суть проблемы: После залогинивания в админке сайта, вход в админку в копию сайта (тот же логин и пароль) в этом же браузере происходит без авторизации

Как воспроизвести проблему: Вот у меня открыты две вкладки. На первой - сайт магазина на домен.ru, на второй вкладке - копия магазина на test.домен.ru.
Открыты они были довольно давно, дня два допустим я на них не заходил (сессия истекает за два часа, поэтому ну просто по любому они должны затребовать авторизацию). Захожу на первую вкладку, обновляю страницу, требует авторизацию, авторизуюсь, все нормально. Открываю вторую вкладку, на субдомене, обновляю страницу - и ну зачем у меня авторизацию спрашивать? Иди, работай говорит, я тебя в лицо узнал )
Собственно давным-давно уже писал я про то что после авторизации на домене автоматом срабатывает авторизация и на субдомене, но ответ был что вроде как так и должно быть.
Только мне чуется, что не должно…

1 лайк

Сессии в редис?

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

Сессии

Здравствуйте, @alex_vp

Спасибо за ваше сообщение.

Уточните, пожалуйста, магазин и копия магазина используют одну базу данных или разные?

День добрый! Разные, конечно, базы. Комплект на тест сайт, и делаю копию базы, чтобы спокойно экспериментировать с кодом

Не воспроизвелось у меня.

У меня тоже самое, прям один в один на копии вообще пароль не ввожу ))) уже месяц точно. Кэш сбросить браузера то да нужно повторно войти и все )

Ну так сессии то в редисе или в БД? Удивительно желание решить проблему, но не отвечать на уточняющие вопросы:)

Редиса нет.

Не воспроизводится таким образом, попробуйте свою сессию из обоих баз удалить и попробовать снова.

Так… Видимо связь между основным и тестом не при чем. Браузер на рабочем компе был открыт с пятницы, сегодня спустя трое с половиной суток сначала перешел на вкладку с тестовым, обновил - и он у меня не запросил пароль - просто обновил вкладку и можно продолжать работать. После этого перешел на вкладку с основным сайтом, обновил, и тут все нормально - запросил ввести логин/пароль. Сегодня попробую выключить все товары и оставить на ночь витрину включенной, так как это пока единственная разница между установками - включенная и выключенная витрина. Посмотрим, как будет завтра утром.

Не думаю, что между установками есть какая-то связь.

Скорее всего, на тестовой установке закрыта витрина, ей никто не пользуется, никто не посещает. В результате, в PHP не срабатывает “сборщик мусора” (garbage collector) для сессий, который бы очистил уже просроченные сессии.

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

3 лайка

То есть если я закрою рабочий магазин (не специально, например, устанавливал обновление и забыл, что при этом процессе витрина закрывается), не вышел из админки, и ушел домой на выходные…
В воскресенье в офис пробрался злой дядька, открыл админку, понаделал делов под моим именем, и в понедельник я на работу прямиком через аптеку за мазеобразной белой массой без запаха и вкуса, получаемой из вакуум-дистиллятных нефтяных фракций загущением петролатумом, парафином и церезином.

Вопрос, а почему же он не срабатывает в админке?

Т.е. не это главная проблема будет, а вот эта? :slight_smile:

Тут очевидная проблема с приоритизацией проблем :smiley: Я вижу порядок приоритетов таким:

  1. Возможность злоумышленникам попасть в офис.
  2. Возможность злоумышленникам воспользоваться незаблокированной рабочей станцией в этом офисе.
  3. Всё остальное.

Ну и заканчивая оффтоп, если будет просто закрыта витрина, её всё равно продолжат посещать:

  • Боты поисковых (и не очень) систем
  • Клиенты, которые были не в курсе, что витрина закрыта

Все эти события будут экспоненциально приближать срабатывание события вызова сборщика мусора для очистки сессий.

Также, хочу отметить, что моя рекомендация изменить значения session.gc_probability и session.gc_divisor всё ещё актуальна и может помочь решить конкретную проблему, в конкретной установке.

:slight_smile:
Согласен, неудачный пример. Но. Тестовая копия сайта содержит все те же данные, что и рабочая, на то она и копия, а значит массу конфиденциальной информации. Допустим была срочная работа, а под рукой оказался только компьютер в далеком чужом офисе.

Спасибо :+1:

1 лайк