Найти тему
Полезные IT советы

Защита админки OpenCart

Безопасность — это важная часть любого сайта. Особенно трепетно нужно относится к административной части сайта, т.е админке. Можно конечно поставить дополнение для этих целей, но порой простые решения не менее эффективны.

Сегодня я расскажу про один простой способ защитить вход в админ панель OpenCart. Проверялось решение на 2й версии, но думаю подойдёт и для 1.5 версий и ранее. Для 3й версии путь тотже, файл login.twig, но нужно будет переделать на twig.

Суть метода, в том, что просто по пути http://site.com/admin Вам выдаст 404 ошибку, а для входа нужно будете открыть страницу админки с определенным ключевым полем, которое будет передаваться в виде параметра ссылки. Итак, приступим.

  • Делаем бекап файла /admin/view/template/common/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 { ?>

//содержимое /admin/view/template/common/login.tpl

<?php } ?>

Далее сохраняем файл и проверяем работу. Теперь, чтобы зайти в админку нужно открыть сайт по ссылке
http://site.com/admin?secretkey=secretkeyvalue

Если не указывать - то выдаст 404 ошибку.

Вы можете изменить ключ доступа, заменив "secretkeyvalue" на свое значение. Также Вы можете и изменить сам параметр, аналогично заменив "secretkey" на свое значение, но это далеко не обязательно, хватит и "secretkeyvalue".

P.S аналогично можно закрыть и любой PHP файл, не обязательно связанный с OpenCart. Моете закрыть админку WordPress, или просто закрыть весь фронтэнд сайта. Т.е этот метод универсальный и очень простой.

P.P.S код написан не мной, на авторство не претендую. Код нашел на форуме Опенкарта. Работу кода проверил не раз в своей работе, все работает на 100%.