Помощь Отключить проверку токенов

rainless

Постоялец
Регистрация
20 Фев 2008
Сообщения
94
Реакции
7
Суть в чём. Малейшая ошибка — и требуется авторизация заново. Доходит до маразма. Редактируешь текст, неправильно указываешь ссылку на картинку — всё! Теперь этот текст можно отредактировать только через базу. Потому что как только ты его открываешь, редактор пытается подтянуть эту картинку, получает 404, слетает сессия, токен недействителен и нужно авторизоваться заново. Текст сохранить уже нельзя. То же самое с файловым менеджером. То же самое, если в каком-нибудь модуле не хватает какой-нибудь картинки. Да мало ли. Поиском нашёл несколько тем, где народ жалуется, что не может войти в админку с этими же симптомами, но каждый раз или темы без ответа остаются, или частное решение удалить глючащий модуль. Я же хочу полностью отключить этот механизм хотя бы на время разработки-настройки-экспериментов. Оно гораздо больше мешает, чем добавляет безопасности.
 
все ошибки есть в логи не является ли смыслом исправить их ?
и я думаю что ваша проблема в первую очередь связана с .htaccess а отключать нет смысла да и как я понимаю тогда авторизация умрет
 
Я описал ситуацию, как менеджер-чайник очень легко может сделать ошибку, которую исправить можно будет только доступом к базе. Поэтому мне нужно исключить такую ситуацию в принципе. И дело не в .htaccess. Конкретно сейчас сильно мешает дорабатывать файловый менеджер. Хотя бы на время этой работы отключить токены хочу.
Насколько понимаю я, токены — это не основа авторизации, а дополнительная ступень безопасности. Но если умрёт авторизация, чтож, тогда верну как было и буду дальше с этой системой мучиться.
 
как раз Это основной метод скорей всего у вас что-то перезаписывает сессию
 
Я уже объяснил, что у меня.
А дальше.
0. Если вы говорите «да и как я понимаю тогда авторизация умрет», то на 100% вы не уверены.
1. Простейший эксперимент: открывается админка в одном браузере. Потом по этой же ссылке с этим же токеном в другом — в другом требуется авторизация. Т.е. не в токенах дело.
2. Не вижу ничего страшного, чтобы выключить авторизацию на время разработки.
 
Файл
Код:
/admin/controller/common/header.tpl

В нем строка 106 - начало разветвления if:
PHP:
if (!$this->user->isLogged() || !isset($this->request->get['token']) || !isset($this->session->data['token']) || ($this->request->get['token'] != $this->session->data['token'])) {
            $this->data['logged'] = '';
           
            $this->data['home'] = $this->url->link('common/login', '', 'SSL');
} else { ... }

Уберите отсюда проверку токенов. Выйдет так:

PHP:
if (!$this->user->isLogged()) {
            $this->data['logged'] = '';
           
            $this->data['home'] = $this->url->link('common/login', '', 'SSL');
} else { ... }
 
Вообще-то всё равно иногда выбивает. А аналогичная проверка есть в login.php, убрал заодно и её — вылогинивать перестало, но стало иногда перебрасывать на панель управления.
Спасибо за подсказку.
 
Вообще-то всё равно иногда выбивает. А аналогичная проверка есть в login.php, убрал заодно и её — вылогинивать перестало, но стало иногда перебрасывать на панель управления.
Спасибо за подсказку.

Посмотрите еще как работает функция

PHP:
$this->user->isLogged()
. Там тоже могут быть какие-либо проверки. Или сделайте так, чтоб она всегда возвращала 1. Главное переводя сайт на продакшн вернуть не забудьте:)

Попробуйте дополнительно увеличить время хранения сессии и куков с авторизацией для виртуалхоста.
 
isLogged как раз возвращает true, т.е. сессия остаётся какой была. А облом случается, например, если в какой-то ссылке токена нет или он неправильный. Сейчас получается, что в таком случае меня перебрасывает на логин, а там if (!$this->user->isLogged()) { и соответственно оттуда перебрасывает на common/common
 
isLogged как раз возвращает true, т.е. сессия остаётся какой была. А облом случается, например, если в какой-то ссылке токена нет или он неправильный. Сейчас получается, что в таком случае меня перебрасывает на логин, а там if (!$this->user->isLogged()) { и соответственно оттуда перебрасывает на common/common

Значит есть еще где-то проверка токенов, такая же как и в header.php. Поищу еще.
 
Назад
Сверху