Безопасность в WordPress: как защитить свой блог от хакеров (часть 1)
WordPress является прекрасной платформой для размещения различных проектов. Успех WordPress во многом обеспечен активной поддержкой, исходящей со стороны сообщества разработчиков программного обеспечения с открытым исходным кодом. Однако стоит признать, что открытость исходников зачастую приводит и к заинтересованности со стороны хакеров, которыми движут далеко не благие намерения. Сегодня WordPress используют миллионы пользователей по всему миру, поэтому велика вероятность того, что какой-либо из веб-мастеров не предпринял необходимы меры предосторожности, не установил защиту от посторонних глаз, что в конечном счете отзовется плачевными результатами.
Возведение защиты для своего блога, работающего на WordPress – обязанность любого уважающего себя пользователя. В этой статье мы подробно рассмотрим методы построения продуманной защиты, которая окажется непреодолимой преградой на пути хакеров.
Проверка критических компонентов: закрываем основные ходы
Среди основных действий, которые позволяют установить элементарный уровень безопасности, можно отметить следующие:
- Своевременное обновление системы WordPress и установленных в ней плагинов. Поскольку WordPress обладает открытым исходным кодом, все уязвимости, существующие в различных версиях этой CMS, досконально известны. Хакерам достаточно узнать номер версии, после чего они уже смогут отыскать верный путь ко взлому сайта.
-
Защита файла wp-config.php. Защитить файл wp-config.php от посторонних глаз можно следующими способами: поставить для него права доступа 440 или 400 (зависит от вашего сервера); переместить wp-config.php выше файла public_html. Чтобы переместить wp-config.php, необходимо создать новый PHP файл с произвольным именем, в котором будет содержаться вся информация, закрытая от редактирования, а в старом файле wp-config прописать следующие строки:
<?php require_once('/home/USERNAME/NEWCONFIGNAME.php'); if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); require_once(ABSPATH . 'wp-settings.php');
Не забудьте указать свои собственные USERNAME и NEWCONFIGNAME.
- Установка корректных прав доступа к файлам WordPress. Если говорить кратко, то это означает, что для всех папок должен стоять chmod 755, а для всех файлов – chmod 644.
Помимо всего прочего, важно:
- Не устанавливать плагины, которые используют base64_urlencode. Это легко можно определить, взглянув на исходный код плагина.
- Если ваша тема использует скрипт timthumb.php, проверьте его версию: она должна быть не ниже 2.0. Не так давно в этом скрипте была обнаружена серьезная ошибка безопасности, которая позволяла хакерам получить доступ к информации. Скачать актуальную версию скрипта можно по следующей ссылке: timthumb.
Использование файла .htaccess: настройка защиты
На первый взгляд файл .htaccess может показаться устрашающим, что в какой-то степени справедливо. Начинающий пользователь вряд ли сможет разобраться в нагромождениях различных инструкций. Файлы .htaccess позволяют управлять доступом к сайту: сюда относится настройка перенаправления посетителей, переименование файлов и каталогов, блокировка IP-адресов и рефереров, запрет доступа к файлам и многое другое. Перед тем, как вносить изменения в .htaccess, обязательно убедитесь в том, что у вас есть резервная копия этого файла, иначе любая случайная ошибка может привести к полному отказу сайта.
Несмотря на то что в природе есть множество WordPress плагинов, позволяющих проводить редактирование .htaccess, я настоятельно рекомендую выполнять все действия вручную. Почему? Если хакер получит доступ к консоли WordPress, он сможет нанести критический урон сайту через редактор .htaccess, который обеспечивается плагинами. Не стоит упрощать жизнь взломщикам.
Ниже я привел обязательный минимум, который должен присутствовать в файле .htaccess.
Отключение просмотра директорий:
# disable directory browsing Options All -Indexes
Отключение сигнатуры сервера:
# disable the server signature ServerSignature Off
Блокировка нежелательных юзер-агентов:
Заблокировать доступ различным ботам, спамерам и вредоносным программам можно с помощью следующих инструкций:
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR] RewriteCond %{HTTP_USER_AGENT} ^Bot mailto:craftbot@yahoo.com [OR] RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR] RewriteCond %{HTTP_USER_AGENT} ^Custo [OR] RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR] RewriteCond %{HTTP_USER_AGENT} ^Download Demon [OR] RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR] RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR] RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR] RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR] RewriteCond %{HTTP_USER_AGENT} ^Express WebPictures [OR] RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR] RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR] RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR] RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR] RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR] RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR] RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR] RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR] RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR] RewriteCond %{HTTP_USER_AGENT} ^HMView [OR] RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Image Stripper [OR] RewriteCond %{HTTP_USER_AGENT} ^Image Sucker [OR] RewriteCond %{HTTP_USER_AGENT} Indy Library [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR] RewriteCond %{HTTP_USER_AGENT} ^Internet Ninja [OR] RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR] RewriteCond %{HTTP_USER_AGENT} ^JOC Web Spider [OR] RewriteCond %{HTTP_USER_AGENT} ^larbin [OR] RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR] RewriteCond %{HTTP_USER_AGENT} ^Mass Downloader [OR] RewriteCond %{HTTP_USER_AGENT} ^MIDown tool [OR] RewriteCond %{HTTP_USER_AGENT} ^Mister PiX [OR] RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR] RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR] RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR] RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^Net Vampire [OR] RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR] RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR] RewriteCond %{HTTP_USER_AGENT} ^Offline Explorer [OR] RewriteCond %{HTTP_USER_AGENT} ^Offline Navigator [OR] RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR] RewriteCond %{HTTP_USER_AGENT} ^Papa Foto [OR] RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR] RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR] RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR] RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR] RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR] RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR] RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR] RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR] RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR] RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR] RewriteCond %{HTTP_USER_AGENT} ^Teleport Pro [OR] RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR] RewriteCond %{HTTP_USER_AGENT} ^Web Image Collector [OR] RewriteCond %{HTTP_USER_AGENT} ^Web Sucker [OR] RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR] RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR] RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR] RewriteCond %{HTTP_USER_AGENT} ^WebGo IS [OR] RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR] RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR] RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR] RewriteCond %{HTTP_USER_AGENT} ^Website eXtractor [OR] RewriteCond %{HTTP_USER_AGENT} ^Website Quester [OR] RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR] RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR] RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR] RewriteCond %{HTTP_USER_AGENT} ^Wget [OR] RewriteCond %{HTTP_USER_AGENT} ^Widow [OR] RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR] RewriteCond %{HTTP_USER_AGENT} ^Xaldon WebSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^Zeus RewriteRule ^.* - [F,L]
Блокировка доступа к WP-Config
# protect wpconfig.php order allow,deny deny from all
Блокировка доступа к .htaccess
order allow,deny deny from all satisfy all
Если вы не имеете достаточного опыта или хотите сэкономить свое время, вы можете воспользоваться уже готовыми плагинами, которые возьмут всю работу на себя. Список плагинов будет рассмотрен далее.
Плагины, заботящиеся о безопасности блога
Здесь мы рассмотрим полезные плагины, которые позволят вам надежно защитить свой блог от хакерских атак.
- BulletProof Security. Позволяет защитить блог от кросс-серверных скриптов, SQL-инъекций, base64, CSRF, а также надежно сохранить жизненно важные файлы вашего сервера, такие как .htaccess и php.ini.
- Login Lock Down – Записывает IP-адреса при неудачных попытках входа в систему. Если число попыток входа было превышено, IP-адрес блокируется на заданный промежуток времени. Прекрасное средство для предотвращения брутфорса.
- Block Bad Queries (BBQ) – Плагин препятствует выполнению злонамеренных запросов eval и base64. Обязательная необходимость в том случае, если не установлена защита BulletProof Security.
http://jmwebdev.com/wordpress-articles/secure-wordpress-blog-hackers.php