Время от времени мы слышим о том, что хакеры взломали очередной сайт и в результате он перестал существовать. Если при этом владелец сайта не сделал никакой копии, или имеющаяся копия очень старая, то информация на сайте теряется безвозвратно.
Конечно, копии делать надо. Но кроме этого существуют и другие способы обезопасить свой сайт и закрыть дорогу для злоумышленников. Вот некоторые из них.
1. Ограничение доступа к админке по IP-адресу
Вряд ли Вам приходится заходить в админ панель сайта с нескольких компьютеров. Скорее всего, Вы это делаете только с одного рабочего места. А раз так, то знаете его IP адрес. Добавляя блок кода в файл .htaccess, мы разрешаем вход в админку только с определенного IP.
<Files wp-login.php>
Order deny,allow
Deny from All
Allow from 123.456.789.0
</Files>
2. Выбор безопасного пароля для базы данных
Конечно, все относительно, в том числе и безопасность. Но генератор паролей CPanel (если у Вас хостинг с CPanel) позволяет получить пароль с высокой степенью защиты. Не стоит пренебрегать этой мерой, поскольку получение хакером доступа к базе данных может поставить на Вашем сайте жирный крест.
3. Защита файла wp-config.php
Раз уж Вы позаботились о безопасном пароле для базы данных, теперь необходимо позаботиться и о файле wp-config.php. По той простой причине, что этот пароль присутствует в данном файле в нешифрованном виде. А значит, если кто-либо получит доступ к wp-config.php, то предыдущий шаг теряет смысл. С помощью добавки к .htaccess закрываем доступ к этому файлу откуда бы то ни было.
# protect wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>
4. Осторожность при выборе плагинов.
Бывает, что плагин содержит уязвимость, которую могут использовать хакеры для получения доступа к сайту. Поэтому следует подбирать плагины с осторожностью. Одним из критериев при выборе плагина может служить его высокая популярность. Во-первых, такие плагины, как правило, обновляются чаще. А во-вторых, если уязвимость будет иметь место, то она будет скорее обнаружена. Плагины, которые давно не обновлялись, использовать не следует, независимо от того, насколько они полезны.
5. Контроль пользователей блога
Обычно настройки блога позволяют зарегистрироваться на нем любому пользователю. Тут важно предоставлять каждому из них минимально необходимый уровень доступа. Если у какого-то пользователя достаточно большие права доступа, то он может использовать Ваш сайт не по назначению. Поэтому необходимо следить за тем, какие права доступа у каждого из зарегистрированных пользователей, и корректировать их, если это нужно.
6. Регулярное обновление сайта
Если выпускаются очередные обновления к движку WordPress или к плагинам, которые Вы используете, то не следует этим пренебрегать и откладывать на потом. Дело в том, что многие из этих обновлений вызваны именно необходимостью исправления уязвимостей. Пренебрегая обновлением, Вы, возможно, оставляете у себя открытые двери для хакеров.
Перед каждым обновлением полезно сохранить копию базы данных блога. И вообще, такие копии лучше делать регулярно.
7. Защита от повторной инсталляции
Бывает, что из-за неполадок на сервере «падает» база данных MySQL. Если в этот момент идет обращение к блогу, WordPress не может получить доступ к базе данных, и ошибочно считает, что блог еще не инсталлирован. В результате выдается страница инсталляции блога. Этим могут воспользоваться недобросовестные посетители и таким образом получить контроль над сайтом. Защита от этого проста – надо войти через FTP в каталог /wp-admin и удалить файл install.php. Этот файл нужен только один раз, при установке сайта, поэтому держать его после этого нет никакого смысла.
8. Борьба со спамом
Существуют программы автоматической рассылки спама на блоги. Они запускаются на других серверах, и шлют спамовые комментарии по списку, куда только можно. Для того чтобы перекрыть дорогу таким «комментаторам», надо добавить в файл .htaccess блок кода, который проверяет, отправлен ли комментарий с нашего сайта. И если это не так, блокирует доступ к блогу.
#Stop spam
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post. [NC]
RewriteCond %{HTTP_REFERER} !.*mysite. [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) – [F,L]
</IfModule>
Разумеется, mysite надо заменить на реальное имя.
9. Блокирование сообщений об ошибке
Что происходит, если мы вводим неправильный логин или пароль при входе в админ панель блога? В этом случае выдается сообщение об ошибке. Это сообщение помогает хакерам в их нелегкой работе по взлому сайта. Поэтому от вывода сообщений об ошибке доступа стоит отказаться вообще. Для этого в файл functions.php темы WordPress добавляем строчку:
add_filter('login_errors',create_function('$a', "return null;"));
Достаточно простые меры, но в то же время весьма эффективные. Не следует ими пренебрегать, и сайт Ваш будет в большей безопасности.