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

Тема в разделе "Opencart", создана пользователем rainless, 18 апр 2013.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. rainless

    rainless Постоялец

    Регистр.:
    20 фев 2008
    Сообщения:
    94
    Симпатии:
    7
    Суть в чём. Малейшая ошибка — и требуется авторизация заново. Доходит до маразма. Редактируешь текст, неправильно указываешь ссылку на картинку — всё! Теперь этот текст можно отредактировать только через базу. Потому что как только ты его открываешь, редактор пытается подтянуть эту картинку, получает 404, слетает сессия, токен недействителен и нужно авторизоваться заново. Текст сохранить уже нельзя. То же самое с файловым менеджером. То же самое, если в каком-нибудь модуле не хватает какой-нибудь картинки. Да мало ли. Поиском нашёл несколько тем, где народ жалуется, что не может войти в админку с этими же симптомами, но каждый раз или темы без ответа остаются, или частное решение удалить глючащий модуль. Я же хочу полностью отключить этот механизм хотя бы на время разработки-настройки-экспериментов. Оно гораздо больше мешает, чем добавляет безопасности.
     
  2. edwardrybka

    edwardrybka Создатель

    Регистр.:
    27 ноя 2012
    Сообщения:
    38
    Симпатии:
    19
    все ошибки есть в логи не является ли смыслом исправить их ?
    и я думаю что ваша проблема в первую очередь связана с .htaccess а отключать нет смысла да и как я понимаю тогда авторизация умрет
     
  3. rainless

    rainless Постоялец

    Регистр.:
    20 фев 2008
    Сообщения:
    94
    Симпатии:
    7
    Я описал ситуацию, как менеджер-чайник очень легко может сделать ошибку, которую исправить можно будет только доступом к базе. Поэтому мне нужно исключить такую ситуацию в принципе. И дело не в .htaccess. Конкретно сейчас сильно мешает дорабатывать файловый менеджер. Хотя бы на время этой работы отключить токены хочу.
    Насколько понимаю я, токены — это не основа авторизации, а дополнительная ступень безопасности. Но если умрёт авторизация, чтож, тогда верну как было и буду дальше с этой системой мучиться.
     
  4. edwardrybka

    edwardrybka Создатель

    Регистр.:
    27 ноя 2012
    Сообщения:
    38
    Симпатии:
    19
    как раз Это основной метод скорей всего у вас что-то перезаписывает сессию
     
  5. rainless

    rainless Постоялец

    Регистр.:
    20 фев 2008
    Сообщения:
    94
    Симпатии:
    7
    Я уже объяснил, что у меня.
    А дальше.
    0. Если вы говорите «да и как я понимаю тогда авторизация умрет», то на 100% вы не уверены.
    1. Простейший эксперимент: открывается админка в одном браузере. Потом по этой же ссылке с этим же токеном в другом — в другом требуется авторизация. Т.е. не в токенах дело.
    2. Не вижу ничего страшного, чтобы выключить авторизацию на время разработки.
     
  6. nethare

    nethare Постоялец

    Регистр.:
    27 окт 2012
    Сообщения:
    104
    Симпатии:
    30
    Файл
    Код:
    /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 { ... }
     
    rainless нравится это.
  7. rainless

    rainless Постоялец

    Регистр.:
    20 фев 2008
    Сообщения:
    94
    Симпатии:
    7
    Вообще-то всё равно иногда выбивает. А аналогичная проверка есть в login.php, убрал заодно и её — вылогинивать перестало, но стало иногда перебрасывать на панель управления.
    Спасибо за подсказку.
     
  8. nethare

    nethare Постоялец

    Регистр.:
    27 окт 2012
    Сообщения:
    104
    Симпатии:
    30
    Посмотрите еще как работает функция

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

    Попробуйте дополнительно увеличить время хранения сессии и куков с авторизацией для виртуалхоста.
     
  9. rainless

    rainless Постоялец

    Регистр.:
    20 фев 2008
    Сообщения:
    94
    Симпатии:
    7
    isLogged как раз возвращает true, т.е. сессия остаётся какой была. А облом случается, например, если в какой-то ссылке токена нет или он неправильный. Сейчас получается, что в таком случае меня перебрасывает на логин, а там if (!$this->user->isLogged()) { и соответственно оттуда перебрасывает на common/common
     
  10. nethare

    nethare Постоялец

    Регистр.:
    27 окт 2012
    Сообщения:
    104
    Симпатии:
    30
    Значит есть еще где-то проверка токенов, такая же как и в header.php. Поищу еще.