* Требования: WordPress 3.1+
* Необходимое время: 30 минут
Wordpress является самой популярной в мире CMS, число пользователей которой насчитывает более 70 миллионов. Но насколько же безопасна эта система? Пол Малоуни расскажет нам, как обезопасить сайт на Wordpress посредством файла .htaccess.
Wordpress без доли сомнения на сегодняшний день является самой распространенной системой, вытесняя такие известные названия как Joomla и Drupal.
Хотя в случае с Wordpress довольно неплохо то, что система набирает вокруг себя огромное развивающее сообщество, предлагающее новые плагины, шаблоны и исправления, но при этом нельзя исключать и отрицательные стороны подобного стремительного роста. Когда что-то становится настолько большим, люди начинают искать способы наброситься на систему по какой бы то ни было причине, по поводу каждой мелочи, которая им не очень нравится.
Большинство пользователей Wordpress держат установочные файлы системы подальше от посторонних глаз и редакторов.
Существует множество плагинов, которые помогут повысить уровень безопасности системы Wordpress, таких как, например, Login LockDown (записывает IP-адреса и блокирует их после указанного числа неудачных попыток авторизоваться).
Еще один плагин называется WP Security Scan (проверяет ваши установочные и системные файлы на дыры и слабые места и предлагает возможные методу по их устранению).
Одними из наиболее необдуманных методов игнорирования безопасности считаются те случаи, когда владельцы веб-сайтов на Wordpress не следят за обновлениями системы, упуская из-под носа все самые свежие исправления и заплатки. (Кстати, вы также можете удалить файлы readme.html и license.txt из корневого каталога системы, чтобы скрыть информацию о версии используемого скрипта).
Настройка файла .htaccess
Кроме плагинов, существует еще несколько дополнений, которые вы можете внести в файл .htaccess. В купе с плагинами и регулярными обновлениями системы это поможет вам в значительно степени повысить уровень безопасности своего сайта.
Давайте мы расскажем вам о некоторых из тех пунктов, которые по нашему мнению помогут защитить ваши установочные файлы, и покажем, куда нужно вставлять отрывки кода; вам не придется задействовать их все, используйте лишь те, которые по вашему мнению необходимы вашему сайту.
Типичный файл .htaccess в WP выглядит следующим образом:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Мы рекомендуем вам некоторые дополнения, которые следует внести в файл .htaccess после # END Wordpress.
Это помогает нам убедиться в том, что вы не нарушите никакие функции файла .htaccess, связанные с WP. Перед тем как вносить изменения в файл, мы настоятельно рекомендуем вам создать резервную копию и поместить ее в надежное место!
Защищаем wp-config.php
wp-config.php – это файл, расположенный в корневом каталоге, который содержит в себе информацию о вашем сайте относительно соединения с базой данных. Этот файл действительно не должен попасть в плохие руки, да даже в любые чужие руки он попасть не должен.
Для того чтобы предотвратить доступ к файлу wp-config.php, внесите следующее в ваш файл .htaccess:
<Files wp-config.php>
order allow,deny
deny from all
</Files>
Привязываем доступ в админ-панель к вашему IP
Вы можете ограничивать доступ к админ-панели по IP-адресу. Для этого нам нужно создать новый файл .htaccess в текстовом редакторе и загрузить его в папку wp-admin.
Представленный ниже отрывок кода ограничивает доступ к этой папке всем, чей IP-адрес отличается от вашего, но учтите, что если у вас динамичный IP, то вам каждый раз придется изменять этот файл. В противном случае, у вас самих не будет доступа к панели.
order deny,allow
allow from 202.090.21.1 (replace with your IP address)
deny from all
Бан подозрительных пользователей
Если вы заметили, что один и тот же IP-адрес постоянно пытается осуществить доступ к вашему контенту или пытается брутфорсить ваш сайт, вы можете внести этот адрес в бан посредством внесения следующего кода в файл .htaccess:
<Limit GET POST>
order allow,deny
deny from 202.090.21.1
allow from all
</Limit>
Теперь никто с указанного IP не сможет попасть на ваш сайт. Вы можете добавить больше строк с запретами. Например:
<Limit GET POST>
order allow,deny
deny from 202.090.21.1
deny from 204.090.21.2
allow from all
</Limit>
Отключение просмотра директорий
Так как WordPress на сегодняшний является одной из самых популярных CMS, многие знают, как устроена структура установочных файлов, а также знают о плагинах, которые используются на вашем сайте, что может предоставить злоумышленникам слишком много лишней информации. Единственный метод борьбы с этим заключается в запрете просмотра директорий на сервере.
# directory browsing
Options All -Indexes
Ограничение доступа к wp-content
Каталог wp-content содержит изображения, шаблоны и плагины, и в структуре установочных файлов системы WordPress этот каталог является очень важным, поэтому было бы не лишним ограничение доступа извне.
Для этого потребуется создать отдельный файл .htaccess в указанном каталоге, который позволил бы посетителям просматривать изображения, загружать CSS, но ограничить доступ на просмотр PHP-файлов:
Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</Files>
Индивидуальная защита файлов
В структуре Wordpress есть отдельные файлы, которые вы возможно захотите защитить, вместо того, чтобы закрывать доступ ко всему каталогу. Приведенный в примере отрывок кода поможет вам предотвратить доступ к файлу .htaccess, чтобы каждому, кто попытается осуществить доступ к файлу, была отображена страница с ошибкой 403. Название файла (который вы хотите защитить) может быть изменено:
# Protect the .htaccess
<files .htaccess="">
order allow,deny
deny from all
</files>
Защищаем .htaccess
Звучит дико, не правда ли? Зачастую, разработчики уделяют время поиску нужных для защиты плагинов и исправлений, и упускают из виду такое простое явление – файл .htaccess тоже может быть атакован.
Данный отрывок кода остановит каждого, кто попытается посмотреть любой файл на сервере, название которого начинается на hta.
<Files ~ "^.*.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>
Мы охватили возможности бана пользователей, предотвращение доступа к вашей админ-панели, защиты файла wp-config.php, защиты папки wp-content, защиты отдельных файлов и даже защиты файла .htaccess
Данный список сниппетов вряд ли можно назвать всеобъемлющим, так как существует еще огромное множество путей повысить уровень безопасности вашего сайта посредством файла .htaccess, но те пункты, которые мы охватили сегодня, являются ключевыми.