Один из самых частых способов взломать любой сайт на любом движке — перебор пары логин-пароль. Если логин или пароль сложные, то взлом будет длиться довольно долго. Но многие указывают стандартные данные, такие как Admin, Administrator и так далее. Зная один из ключей пары логин-пароль, получить несанкционированный доступ к сайту будет намного проще. Таким образом, первый пункт защиты административной части (админки) ресурса — это создание сложного пароля и логина.
Говоря об Opencart 2 и более ранних версиях, админку можно и нужно защищать дополнительно. Для этого можно использовать сразу несколько способов или один из наиболее подходящих. Рассмотрим их.
Содержание
Защита админки Опенкарт 2 от взлома с помощью смены адреса доступа
Злоумышленники смогу легко начать подбирать данные для доступа к управлению вашим сайтом на Опенкарт 2, если вы оставите адрес для входа в админку стандартным. Ведь для этого нужно будет лишь дописать к домену /admin — дефолтный путь CMS Opencart.
Чтобы усложнить работу нехорошим пользователям, указанный стандартный адрес для входа в административную часть нужно изменить. Для этого выполняем несколько простых действий:
1. Идём на хостинг, открываем файл login.tpl, расположенный по пути /admin/view/template/common/login.tpl
2. Открыв файл на редактирование, перед самой верхней строкой вставляем код:
1 2 3 4 5 6 7 8 9 10 |
<?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 { ?> |
3. В этом коде слова secretkey и secretkeyvalue нужно заменить на любые другие, которые будут известных только вам. Можно использовать подчёркивания и дефисы, но нельзя использовать пробелы. Например, укажите novdosput и neugadalihaha.
4. В этом же файле login.tpl, в самом низу после нужно вставить закрывающие скобки:
1 |
<?php } ?> |
5. Запоминаем придуманные данные и сохраняем файл.
С этого момента, для входа в админку вашего сайта нужно будет использовать не просто адрес sait.ru/admin, а sait.ru/admin?secretkey=secretkeyvalue или согласно нашим данным из примера:
sait.ru/admin?novdosput=neugadalihaha
Отныне подобрать данные будет очень сложно.
Закрытие от индексации админки при смене её адреса
Административную часть сайта нужно обязательно запретить к индексированию поисковыми роботами — там нет ничего такого, что понадобится или поможет вашему ресурсу подняться в выдаче, скорее наоборот.
По-умолчанию, в файле robots.txt указывается директива Disallow:/admin и можно оставить её. Но лучше данную строчку убрать, а индексирование запретить следующим образом:
1. Открыть файл header.tpl по пути /admin/view/template/common/
2. Найти в файле открывающий теги после него вставить дополнительную строчку:
1 |
<meta name="robots" content="noindex" /> |
Ведём по ложному пути
Изменив адрес для доступа к админке, а также удалив строку Disallow:/admin из файла robots.txt (лежит в корне сайта, если нет — необходимо создать), можно направить «переборщиков» по ложному пути.
Для этого в файле robots.txt создаём строчку Disallow:/adminka-sayta.php, сохраняем и в корневом каталоге размещаем файл adminka-sayta.php, в содержимое которого можно вставить любые данные. Можно обозвать преступников плохими словами, а можно просто создать фейковую форму ввода логина-пароля, которая бы при любом варианте выдавала ошибку — пусть помучаются.
Кроме того, можно настроить отслеживание этого файла с помощью Яндекс.Метрики и так узнать о том, как часто ваш сайт пытаются взломать.
Защищаем админку Opencart 2 от взлома с помощью .htpasswd (дополнительный пароль)
Если практически безпробойный вариант защиты админки сайта от перебора пары логин-пароль — это создание дополнительного пароля сразу на всю папку Admin.
Итак, для защиты адинки Opencart 2 от взлома с помощью .htpasswd, добавляем в файл .htaccess (должен лежать в корне сайта) следующую запись:
1 2 3 4 5 6 7 |
AuthType Basic AuthName "Private zone. Only for administrator!" AuthUserFile "/home/.../.htpasswd" #Абсолютный путь до файла .htpasswd в папке Admin Require valid-user <Files .htpasswd> deny from all #запрет доступа из браузера к .htpasswd </Files> |
Далее, создаём файл .htpasswd (в папке ADMIN), генерируем пару логин/пароль с помощью генератора (например, https://htmlweb.ru/service/htpasswd.php) и вставляем сгенерированное значение в виде admin:$apr1$rq.EBJZt$sQP8/.4fl6upoPiUoYTmm1 в этот файл. Можно admin заменить на что-то своё.
Сохраняем и после этого доступ к системе управления вашим ресурсом на Опенкарт будет только через дополнительную авторизацию. Обязательно запомните новую пару логин-пароль, иначе не сможете зайти в админку.
Индексирование при защите сайта через .htpasswd
В случае использования файла .htpasswd в папке admin, указание дополнительных директив на запрет индексации не требуется. Так что можно смело удалять строчку Disallow:/admin из файла robots.txt!