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

Защита входа в админку ocStore 0.2.2 и ocStore 1.0.1

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

Здравствуйте уважаемые форумчане!

В теме "Безопасность админки", было приведено одно из решений по защите попадания в админку путем изменения путей в config.php самой админки.

Предлагаю еще одно решение основанное на проверке доп. параметра при входе в админку. Правки будет мало, не так как при "Активация пользовательского e-mail" :)

Итак приступим:

правим файл \admin\index.php

для версии 0.2.2

ищем

// Session
$registry->set('session', new Session());
ниже вставляем вот это:
$sess = @$registry->get(session);
if (empty($sess->data['SecureAuthentication'])) {
	if((preg_match("/admin\/*index.?\.php$/i", $_SERVER['SCRIPT_NAME']))) {
		if($_SERVER['QUERY_STRING'] != 'random' ) {
			header('Location: ../index.php');
			exit;
		}  else {
           $sess->data['SecureAuthentication'] = '1';
		}
	}
}
unset($sess);
сохраняем файл.

для версии 1.0.1

ищем

$registry->set('session', $session);
ниже вставляем вот это:
if (empty($session->data['SecureAuthentication'])) {
	if((preg_match("/admin\/*index.?\.php$/i", $_SERVER['SCRIPT_NAME']))) {
		if($_SERVER['QUERY_STRING'] != 'random' ) {
			header('Location: ../index.php');
			exit;
		}  else {
           $session->data['SecureAuthentication'] = '1';
		}
	}
}
сохраняем файл.

Совместно для обоих версий 0.2.2 и 1.0.1

Правим \admin\controller\common\logout.php

после

unset($this->session->data['token']);
добавляем
unset($this->session->data['SecureAuthentication']);
сохраняем файл.

Слово "random" в строке

if($_SERVER['QUERY_STRING'] != 'random' )
файла \admin\index.php - это именно та переменная которую можно менять и надо будет теперь дописывать в путь попадения в админку.

Если раньше набирали http://моймагазин/admin/

то теперь надо будет набирать http://моймагазин/admin/?random обратите внимание на "?" он важен.

В итоге получаем такую картину, тот, кто правильно набрал путь с переменной, попадает в админку, дальше надо будет ввести логин-пароль.

Те, кто ошибается в строке, автоматом отсылается на главную магазина.

Все. Спасибо за внимание.

Изменено пользователем Conwell
  • +1 2

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


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

У меня не работает. OS 2.0 . Ошибки вываливаются. На админ панель все равно попадает ( на сайт не перенаправляется )и сверху ошибка

Notice: Use of undefined constant session - assumed 'session' in ..........\admin\index.php on line 98

, при попытке авторизации тоже ошибки

Notice: Use of undefined constant session - assumed 'session' in .........\admin\index.php on line 98Warning: Cannot modify header information - headers already sent by (output started at .........\admin\index.php:73) in ...........\system\engine\controller.php on line 27

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


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

У меня не работает. OS 2.0 . Ошибки вываливаются. На админ панель все равно попадает ( на сайт не перенаправляется )и сверху ошибка

Notice: Use of undefined constant session - assumed 'session' in ..........\admin\index.php on line 98

, при попытке авторизации тоже ошибки

Notice: Use of undefined constant session - assumed 'session' in .........\admin\index.php on line 98Warning: Cannot modify header information - headers already sent by (output started at .........\admin\index.php:73) in ...........\system\engine\controller.php on line 27

Можно посмотреть на admin\index.php, как вы его поправили? Такое ощущение, что вместо того чтобы добавить текст ниже
$registry->set('session', new Session());
Вы эту строчку заменили. Поэтому такой константы session (установка сессии как раз происходит на 96-ой строке admin\index.php) не существует.

PS, а вообще хорошо бы обновиться до 0.2.2 :rolleyes:

  • +1 1

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


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

Можно посмотреть на admin\index.php, как вы его поправили? Такое ощущение, что вместо того чтобы добавить текст ниже

$registry->set('session', new Session());
Вы эту строчку заменили. Поэтому такой константы session (установка сессии как раз происходит на 96-ой строке admin\index.php) не существует.

PS, а вообще хорошо бы обновиться до 0.2.2 :rolleyes:

Спасибо за ответ. Внимательно все проверю, о результатах отпишусь.

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


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

А на 1.5 можно портировать?

Попробовал вставить - ни ошибок ни результата работы :)

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


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

А на 1.5 можно портировать?

Попробовал вставить - ни ошибок ни результата работы :)

Добавил изменения в первый пост. Разница в коде admin/index.php версий 0.2.2 и 1.0.1 минимальная , но она есть, из-за этого и не работало.

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


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

Добавил изменения в первый пост. Разница в коде admin/index.php версий 0.2.2 и 1.0.1 минимальная , но она есть, из-за этого и не работало.

Собственно так и делал... только vqMod. Только я не учел, что index.php не редактируется через него, т.к. vqMod в нем только объявляется :)
  • +1 1

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


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

Здравствуйте уважаемые форумчане!

В теме "Безопасность админки", было приведено одно из решений по защите попадания в админку путем изменения путей в config.php самой админки.

Предлагаю еще одно решение основанное на проверке доп. параметра при входе в админку. Правки будет мало, не так как при "Активация пользовательского e-mail" :)

Итак приступим:

правим файл \admin\index.php

для версии 0.2.2

ищем

// Session
$registry->set('session', new Session());
ниже вставляем вот это:
$sess = @$registry->get(session);
if (empty($sess->data['SecureAuthentication'])) {
	if((preg_match("/admin\/*index.?\.php$/i", $_SERVER['SCRIPT_NAME']))) {
		if($_SERVER['QUERY_STRING'] != 'random' ) {
			header('Location: ../index.php');
			exit;
		}  else {
           $sess->data['SecureAuthentication'] = '1';
		}
	}
}
unset($sess);
сохраняем файл.

для версии 1.0.1

ищем

$registry->set('session', $session);
ниже вставляем вот это:
if (empty($session->data['SecureAuthentication'])) {
	if((preg_match("/admin\/*index.?\.php$/i", $_SERVER['SCRIPT_NAME']))) {
		if($_SERVER['QUERY_STRING'] != 'random' ) {
			header('Location: ../index.php');
			exit;
		}  else {
           $session->data['SecureAuthentication'] = '1';
		}
	}
}
сохраняем файл.

Совместно для обоих версий 0.2.2 и 1.0.1

Правим \admin\controller\common\logout.php

после

unset($this->session->data['token']);
добавляем
unset($this->session->data['SecureAuthentication']);
сохраняем файл.

Слово "random" в строке

if($_SERVER['QUERY_STRING'] != 'random' )
файла \admin\index.php - это именно та переменная которую можно менять и надо будет теперь дописывать в путь попадения в админку.

Если раньше набирали http://моймагазин/admin/

то теперь надо будет набирать http://моймагазин/admin/?random обратите внимание на "?" он важен.

В итоге получаем такую картину, тот, кто правильно набрал путь с переменной, попадает в админку, дальше надо будет ввести логин-пароль.

Те, кто ошибается в строке, автоматом отсылается на главную магазина.

Все. Спасибо за внимание.

_______________________________________________________________________________________________________________

Приветствую Вы меня извените зачем так сложно...то настройте файл .htaccess на хостинге и будет вам счастье или я не прав?

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


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

_______________________________________________________________________________________________________________

Приветствую Вы меня извените зачем так сложно...то настройте файл .htaccess на хостинге и будет вам счастье или я не прав?

.htaccess это тоже вариант закрытия доступа в админку, НО с ним есть сложности как правильно его прописать и реализовать. Конкретных действий по .htaccess (что от начала, до конца надо прописать, добавить) нет.

Собственно мой вариант решения, как возможно реализуемый и рабочий родился из вот этого обсуждения: https://opencartforum.com/topic/1318-%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%BA%D0%B8/

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


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

.htaccess это тоже вариант закрытия доступа в админку, НО с ним есть сложности как правильно его прописать и реализовать. Конкретных действий по .htaccess (что от начала, до конца надо прописать, добавить) нет.

Собственно мой вариант решения, как возможно реализуемый и рабочий родился из вот этого обсуждения: http://opencartforum...BD%D0%BA%D0%B8/

А почему происходит привязка к конкретному компу при внесении этих изменений? C другого компа не войти.

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


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

Хочу добавить кнопку админки на главную страницу сайта! как это реализовать?

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


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

Хочу добавить кнопку админки на главную страницу сайта! как это реализовать?

Например,установив этот модуль,поставить вывод модуля только на главной,и вставьте ссылку вида:

<a href="http://имя сайта/admin">Админка</a>
Или просто вставьте эту ссылку в шаблон.

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


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

Вот такая ошибка у меня!Ostore 1.5.4.1 Use of undefined constant session - assumed 'session' in admin/index.php on line 112

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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