Перейти к содержанию
Sergeyy84

Сделать, чтобы не слетала авторизация в ЛК после закрытия браузера

Рекомендуемые сообщения

Ocstore 2.3

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

Кто сможет реализовать на платной основе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

файл 

system/library/session.php

строку

            session_set_cookie_params(0, '/');

заменить на

            session_set_cookie_params(x, '/');

 

где x количество секунд сколько надо хранить.

например для 1 суток

            session_set_cookie_params(86400, '/');

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

nikifalex, на шарде не всегда пройдет, он там раз N часов принудительно чистит папку с сессиями 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

достаточно не ставить на шаред дибиан или бубунту :)

А, ну еще можно папку для сессий изменить и потом делать с ней что хочешь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

nikifalex, ArtemPitov, сайт на на vps, хостер adminvps.ru

Программист пробовал разные способы, но не получается. Сказал, что дело не в хостере, т.к. на локалке тоже пробовал и не помогало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делается это все вот так 

 

1) В systemсоздаем папку sessions

 

2) system/library/session.php

после ini_set('session.cookie_httponly', 'On');

добавляем 

            ini_set('session.cookie_lifetime', 15552000);
            ini_set('session.cookie_gc_maxlifetime', 15552000);

15552000 - тут пол года, ставите свое значение 60 сек * 60 мин * 24часа - получаем день и так дальше 

 

дальше перед 

session_start();

добавляем 

 

session_save_path(DIR_SYSTEM . 'session');

и 

session_set_cookie_params(15552000, '/');

Так же 15552000 на свое 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

nikifalex, так шардер вроде не дает выбора что ставить, что дали на том и крутимся 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не что дали, а что выбрали :) хостеров этих миллионы. всегда есть из чего выбрать.

и кстати это сборщик мусора по крону, в любом случае закрытие браузера пережить должен даже linux mint.

 

Я бы советовал писать не горе-программисту, а напрямую сисадминам adminvps

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Писали сисадминам. Они ничем не смогли помочь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потмоу что авторизация действует на сессию браузера

 

После закрытия браузера - сессия будет закрыта автоматически
поэтому нужна кука однозначно гарантирующая "запомнить меня" (remember me)

Но не спешите покупать
Возможно, что ни один разработчик не заморочился безопасностью (судя по бесплатным)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

chukcha, т.е. вы хотите сказать, то что посоветовал ArtemPitov, не сработает?

у вас есть какая-то своя наработка (модуль)?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
30 минут назад, Sergeyy84 сказал:

то что посоветовал ArtemPitov, не сработает?

Нет не сработает

 

Повторю

Эти установки живы для сессии браузера

Браузер закрыли  - сессия умерла

Наработок нет, но то как сделано это в бесплатных модулях - это дыра в безопасности, достаточно перехватить (украсть) куки и... все

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, chukcha сказал:

Наработок нет, но то как сделано это в бесплатных модулях - это дыра в безопасности, достаточно перехватить (украсть) куки и... все

тут имеется ввиду взлом личного кабинета пользователя или всего магазина?

Изменено пользователем Sergeyy84

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, Sergeyy84 сказал:

тут имеется ввиду взлом личного кабинета пользовател

В основном это

всего магазина - это вторично.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот пример, как ломается бесплатный remember me

 

				$activity_data = array(
					'customer_id' => $this->customer->getId(),
					'name'        => $this->customer->getFirstName() . ' ' . $this->customer->getLastName()
				);

Эти данные получаем из контроллера

 

Устанваливаем куку

setcookie("customer_id_cookie", $activity_data['customer_id'], time() + (10 * 365 * 24 * 60 * 60), "/");

Заметьте - это id пользователя

 

затем

if(isset($_COOKIE["customer_id_cookie"]) && $_COOKIE["customer_id_cookie"]!=''){
	$_SESSION['default']['customer_id']=$_COOKIE["customer_id_cookie"];

ВСЕ! приплыли..
Как сломать?

регистрируемся, получаем в куке свой id

 

теперь начинаем уменьшать id в куке

 

Все юзер залогинен.потому что

if (isset($this->session->data['customer_id'])) {

Т.е. даже красть кук не надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прикольно, нужно будет свой велосипед на досуге придумать  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

зачем думать?

Есть масса рекомендаций, например

http://jaspan.com/improved_persistent_login_cookie_best_practice

 

Но реально, если делать правильно, то это хорошая фишка получится..
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вот, то что я и говорил - зачем думать,

В 13.06.2017 в 12:46, chukcha сказал:

Возможно, что ни один разработчик не заморочился безопасностью (судя по бесплатным)

 

Платный модуль

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=27493&filter_search=remember me

 

зарегился

залогинился

получил куку

изменил

Закрыл браузер

открыл сайт

Опс.. я залогинен под чужим логином.

 

И это без особого желания что-либо ломать. Только ради проверки.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

прикольно, потом получил доступ к бд и верти сайтом как угодно, .а если есть фтп то вообще весело 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, chukcha сказал:

И это без особого желания что-либо ломать. Только ради проверки.

Как быть? Ждать от вас модуль с шифрованием кук?:rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 минут назад, ArtemPitov сказал:

прикольно, потом получил доступ к бд и верти сайтом как угодно, .а если есть фтп то вообще весело 

И каким образом вы доступ к БД получите из аккаунта покупателя?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Sergeyy84 сказал:

Как быть? Ждать от вас модуль с шифрованием кук?:rolleyes:

Так не использовать это расширение, да и все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Shureg сказал:

Так не использовать это расширение, да и все.

Что посоветуете тогда?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Shureg Вы не поняли суть, при таком подходе мы переберем ID пока не зайдем в админку, а там уже проще пареной репы  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, ArtemPitov сказал:

@Shureg Вы не поняли суть, при таком подходе мы переберем ID пока не зайдем в админку, а там уже проще пареной репы  

Каким образом вы в нее зайдете, перебирая аккаунты ПОКУПАТЕЛЕЙ ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.