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

Здравствуйте, друзья.

 

Сегодня я расскажу о том, как на 99,9% защитить opencart.

 

За 3 года пользования опенкарт я провел ряд исследований. Последний год я просил своих коллег из Канады, Франции и Китая взломать мой тестовый сайт. Результат - ноль.

 

Итак. Постоянно слышу как панацею от всех болезней - переименование, перемещение админки. К сожалению, это не эффективно.

 

На моем сайте стоит 2 защиты:

 

1) на стороне сервера

2) программно.

 

Про первую часть я не буду говорить, так как это само собой разумеющееся: установить пароль на директорию через htpasswd.

 

А вот вторая часть интереснее. Приступим, всего 2 шага.

 

В директории админ в файле login.tpl в самом начале прописываем:

<?php
if (isset($_GET['secretkey']))
{$seckey = $_GET['secretkey'];
setcookie ("secretkey", $_GET['secretkey']);}
else if
(isset($_COOKIE['secretkey']))
{$seckey = $_COOKIE['secretkey']; }
else {$seckey = '';}
if ($seckey != 'secretkeyvalue') {header("HTTP/1.0 404 Not Found");
exit; } else { ?>

В конце всего файла закрываем:

<?php } ?>

Всё.

 

Чтобы попасть в административную часть вам потребуется зайти по адресу /admin?secretkey=secretkeyvalue , где secretkey и secretkeyvalue ВАШИ значения.

 

У меня например на сайте так: /admin?djghjcbynthytn=jndtnvfufpby

 

Сложно? - нет. Потому что мои значения этой абрыкадабры равны осмысленным значениям, только на латинице: вопросинтернет=ответмагазин.

 

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

 

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

 

Благодарю за внимание.

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


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

Ну а чтобы господам взламывателям было веселее - я создал administrator.php , при это прописал его в robots.txt (они же любят поглазеть туда). А в этом "админском файле" я прописал клон административной части входа, только просто на html... при этом при попытке входа он отсылает на http://natribu.org/.

 

Удачи. Если будут вопросы или комментарии - буду рад ответить.

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


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

Постоянно слышу как панацею от всех болезней - переименование, перемещение админки. К сожалению, это не эффективно.

почему?

 

код во view - это круто

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


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

В директории админ в файле login.tpl в самом начале прописываем:

...

 

Чтобы попасть в административную часть вам потребуется зайти по адресу /admin?secretkey=secretkeyvalue , где secretkey и secretkeyvalue ВАШИ значения.

 

В принципе, решение нормальное, но имеет смысл развивать дальше. В данный момент это выглядит так: поставлена бронированная дверь (вход в админку), но окна и стены дома (весь остальной код) оставлены как есть. Лучше, полагаю, реализовывать подобное прямо в index.php.

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


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    330
Ну а чтобы господам взламывателям было веселее - я создал administrator.php , при это прописал его в robots.txt (они же любят поглазеть туда).

Может, какую-то совсем школоту вы так и обманите, но ОК легко опознать и без админки.

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


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

почему?

 

код во view - это круто

 

Конечно во view - ведь любой сайт мониторится на систему управления в два счета. Зная двиг - будешь знать как к нему подойти.

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


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

В принципе, решение нормальное, но имеет смысл развивать дальше. В данный момент это выглядит так: поставлена бронированная дверь (вход в админку), но окна и стены дома (весь остальной код) оставлены как есть. Лучше, полагаю, реализовывать подобное прямо в index.php.

 

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

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


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

Может, какую-то совсем школоту вы так и обманите, но ОК легко опознать и без админки.

 

Вы правы. Про админ.пхп - это просто бравада, не стоит на этом заострять внимание. Мне просто захотелось эту школоту послать по адресу - никаким боком, конечно же, это не влияет на защиту в целом.

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


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

почему?

 

код во view - это круто

 

мы сейчас говорим конкретно про сайт.ру/админ/

 

И это решение - да, полноценное.

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


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

$_GET, $_COOKIE, header() - нельзя так.

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


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

$_GET, $_COOKIE, header() - нельзя так.

я об этом же

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


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    330
Конечно во view

Это надо делать в контроллере.

Ну, и как намекают выше - у ОК есть обёртки над суперглобальными переменными (в которых, кстати, дополнительная фильтрация) и собственный метод в Response для установки заголовков.

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


Ссылка на сообщение
Поделиться на другие сайты
TrueLog    0
В 12.12.2016 в 09:21, jvz сказал:
В 12.12.2016 в 08:55, shoputils сказал:

$_GET, $_COOKIE, header() - нельзя так.

я об этом же

Почему нельзя? Этот метод, в целом, не подходит для защиты админки?

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


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

Почему нельзя? Этот метод, в целом, не подходит для защиты админки?

Потому что нужно экранировать все что приходит в GET POST, потому что это сделано уже за вас на уровне движка, потому что надо использовать системные методы для обработки входящих данных, а не писать костыли, потому что согласно паттерну MVC, использовать любую бизнес-логику в представлении нельзя.
Потому что прежде чем постить подобные советы - надо пойти и немного поучиться!

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


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

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

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

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

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

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

Войти

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

Войти


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

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