Kohana — как происходит авторизация из одной локальной сети?
Здравствуйте. Заметил интересную особенность авторизации на сайтах, сделанных на kohana.
В нашей локальной сети в офисе, при авторизации на сайте с одного пк авторизация проходит успешно, если зайти с такого же браузера с другого пк, то не надо будет авторизовываться, человек автоматически попадает в учетку ранее авторизовавшегося человека. Если же этот человек с делает выход и новую авторизацию, то теперь первый человек попадет в учетку второго.
В разных браузерах данный эффект не работает, на других сайтах тоже, но вот на сайтах на kohana срабатывает всегда. Объясните пожалуйста, чем может быть вызван данный эффект, чтобы можно было с ним что-то сделать.
Логично)
Схема проверки "авторизованности" пользователя происходит следующим образом:
В общем для всех контроллере приложения (от которого наследуются все остальные)
объявляется protected $user;
в методе before $this->user = Auth::instance()->get_user();
и соответственно проверка на вход производится следующим образом:
if ($this->user === NULL)
HTTP::redirect('login');
нет, проверка точно не по IP, в разных браузерах/ на разных платформах подобного эффекта нет, только на шиндовс и только в одинаковых браузерах. Стандартный модуль авторизации от kohana никаким модификациям не подвергался
Думаю проблема где-то на уровне хранения токенов для восстановления сессии авторизации.
modules/orm/classes/Kohaha/Auth/ORM.php 150 строка скрин
Но токен генерируется весьма секьюрно и без возможности дублирования скрин
В общем как один из вариантов вижу, что кука "authautologin" у вас одинаковая, правда это маловероятно
да, в том то и дело, что токен достаточно уникально генерируется, а по куке автологин, проверил, если кука есть, то как раз все норм, нет такого бага, а вот если авторизация происходит без запоминания в куке и токене, а на уровне сесии, то баг имеет место быть.
Видимо где то в сети у нас то ли куки общие храянятся, то ли еще что, но вот такой момент нашелся, причем, судя по всему даже разработчики этого модуля этого не учли.
А тупо сессии проверить? Ибо это больше на сессии похоже, чем на куки. Закиньте одному пользователю в сессию что-нить, появится у второго? Ну или поменяйте драйвер сессии.