FL.ru – фриланс сайт удаленной работы №1. Поиск удаленной работы, фрилансеры.

Методы защиты блога на WordPress с помощью .htaccess

Категории: WordPress

Раньше я уже как-то говорил про значение системного файла .htaccess для оптимизации сайта, и рассказывал про способы настройки .htaccess для оптимизации сайта. Сегодня опять речь пойдет об этом файле, только уже с точки зрения безопасности сайта, безопасности .htaccess.

Сложного здесь ничего нет. Я со своими несильными знаниями быстро разобрался, поэтому если вы – дилетант, то не парьтесь, все у вас получится.

Все, что вам нужно знать – это в общих представлениях о WordPress, иметь начальные навыки разработки кода, ну и немного времени.

На сегодняшний день пользователей WordPress по всему миру более чем 70 млн., поэтому не буду доказывать, что Вордпресс – это лучшая CMS. Это мой любимый движок, я работаю с ним давно, и, думаю, большинство блогеров разделяют мое мнение. К тому же, пользователей WordPress больше чем пользователей таких популярных движков как Джумла и Друпал

безопасность htaccess

Время от времени в админке мы все видим, что появилась новая версия движка и нужно обновляться. Но вот если так задуматься, то зачем все это делается? Одной из причин является безопасность. Насколько безопасен движок WordPress? Давайте на доступном для нас всех уровне попробуем разобраться.

С одной стороны, очень хорошо, что число пользователей WordPress постоянно растет. Например, когда у меня возникают какие-либо проблемы с движком, я сразу иду на форум вордпресс, создаю топик, и мне обязательно кто-нибудь отвечает. Особенно приятен мне Ю.Б. Кто там общался, тот знает. Так вот, это с одной стороны. С другой стороны, стремительный рост числа пользователей движка подбивает некоторых мудаков на различного рода негатив.

На мой взгляд, некоторые вещи лучше держать подальше от посторонних глаз. Сегодня существует множество плагинов, которые повышают уровень безопасности WordPress. Один из них — Login LockDown. Данный плагин отслеживает обращения к сайту, записывает IP, и когда активность некоторых IP превышает определенную норму, то они блокируются). Данный плагин не единственный в своем роде. Вот, например, еще один полезный — WP Security Scan. Плагин мониторит все ваши файлы, находит в них уязвимости и предлагает варианты решения проблемы

безопасность wordpress

Вообще, большинство обновлений движка Вордпресс являются вынужденными, и закрывают дырки, которые были в предыдущей версии. То есть, обновления проиходят в первую очередь исходя из соображений безопасности. Вот поэтому игнорировать обновления не стоит. Тем более, что обновить то – это дело одной минуты. Да, если в корне сайта лежат файлы license.txt и readme.html, то лучше их оттуда удалить. Зачем, чтобы любой прохожий знал, какая версия скрипта используется у нас на сайте?

Теперь о настройке .htaccess

Вообще, конечно, с помощью плагинов все значительно проще. Установил, и забыл. Не нужно лезть в код, чего-то там ковыряться и т.д. Но с другой стороны, даже если вы не владеете навыками программирования, то это не значит, что вы не сможете самостоятельно внести необходимые изменения. Все просто. Смотрите. Настраивать все будем через .htaccess. Я не говорю, что все эти действия надежно защитят вас от любых угроз, но все равно, значительно повысят безопасность .htaccess, да и сайта в целом, так что игнорировать их не стоит.

Ниже покажу, какие изменения можно внести в файл .htaccess. Все их не нужно применять. Смотрите сами, что вам подойдет больше всего.

Вот так выглядит стандартный файл .htaccess:

1
2
3
4
5
6
7
8
9
10
# 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, а и в случае, если чего накосячим, то будет просто найти внесенные изменения, и сделать откат.

Защита wp-config.php

Если вы сами устанавливали движок Ворпресс, то файл config.php будет вам известен, потому что в нем хранятся все необходимые параметры сайта. И этот файл уж точно не должен попасть в плохие руки.

Поэтому доступ к этому файлу нужно ограничить. Для этого нужно внести в .htaccess следующие изменения:

1
2
3
4
<files wp-config.php>
order allow,deny
deny from all
</files>

Блокировка по IP

Тут уже все зависит от типа вашего подключения к интернету. Если вы все время входите в интернет с домашнего компа через роутер, то проблема решаема. Как правило, при каждом новом подключении к сети IP меняется, то есть, айпи – динамический. Я уж не знаю как вас, но у меня, да и у большинства моих знакомых, можно сделать, чтобы IP был статическим, то есть, все время один и тот же. Для этого нужно покопаться в настройках модема. Как это сделать для каждого конкретного случая – это уже выходит за рамка сегодняшней темы, но в любом случае при желании сможете нагуглить как это делается в вашем случае.

Так вот, если заходите вы в админку через один и тот же IP, то можно ограничить доступ к панели по IP-адресу. Опять же с помощью .htaccess. Для этого необходимо создать новый файл .htaccess в текстовом редакторе и загрузить его в папку wp-admin.

Код, который ниже, ограничивает доступ к этой директории всем, чей IP отличается от вашего:

1
2
3
order deny,allow
allow from 202.090.21.1 (replace with your IP address)
deny from all

Блокировка подозрительной активности

Бывает, что нужно заблокировать определенных посетителей. У меня, например, плагин Akismet ежедневно отлавливает кучу спама. Но если проанализировать IP, с которых отправляются спам-комментарии, то можно прийти к выводу, что многие из них отправляются на автомате, ботами, и часто их IP повторяются. Поэтому можно заблокировать эти IP, и тем самым снизить нагрузку на сервер. Либо же бывает, что просто можем обнаружить, что с какого-то IP постоянно пытаются получить доступ к сайту. В таком случае тоже можно отправить такой IP в бан с помощью кода:

1
2
3
4
5
<limit GET POST>
order allow,deny
deny from 195.756.47.2
allow from all
</limit>

При желании список можно расширить:




1
2
3
4
5
6
<limit GET POST>
order allow,deny
deny from 195.756.47.2
deny from 158.47.98.5
allow from all
</limit>

Запрет просмотра директорий

Что хорошо для злоумышленников? То, что они знают о вас слишком много. WordPress – популярный движок, и многие знают, как он устроен. К тому же многие знают самые популярные плагины, которые почти все используют. А зачем давать нехорошим людям слишком много ненужной информации? Поэтому можно запретить просмотр определенных директорий на сервере:

1
2
# directory browsing
Options All –Indexes

Выборочная защита файлов

В том случае, если не нужно закрывать от посторонних целую директорию, можно установить запрет на доступ к определенным файлам. В качестве примера здесь кусок кода, который запрещает доступ к файлу .htaccess. Когда будут запрашивать данный файл, то будет отображаться ошибка 403. По аналогии можно закрыть доступ и к другим файлам

1
2
3
4
5
# Protect the .htaccess
<files .htaccess="">
order allow,deny
deny from all
</files>

Защита файла .htaccess

Согласитесь, глупо, обсуждаем здесь как защищаться, а сам файл, в котором прописываем необходимые для этого условия, не защищаем. Эту проблему тоже можно устранить. С помощью приведенного ниже кода мы ограничим доступ всем пользователям, которые будут запрашивать файлы с названием, начинающимся на hta:

1
2
3
4
5
<files ~ "^.*.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

Блокируем доступ к директории wp-content

Это очень важная директория. Здесь, по сути, все без исключения важное. Здесь и темы wordpress, и плагины, и изображения. В общем, очень важный каталог. Поэтому его при желании тоже можно защитить. Для этого нужно создать отдельный файл .htaccess в указанном каталоге. Посетители, как и раньше, смогут просматривать изображения, CSS тоже будет подгружаться. Но если пользователь захочет просмотреть php-файл, то это ему не удастся:

1
2
3
4
5
Order deny,allow
Deny from all
<files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</files>

Заключение

Я не претендую на уникальность, на полноценную компетентность, но по большому счету, зачем всем этим загоняться? Зачем лезть в дебри? Тем более что я рассчитываю здесь на среднестатистического пользователя движка WordPress, а не на профессионального разработчика. Поэтому описанного для обычного пользователя движка ВП хватит выше крыши. У меня все на сегодня. До связи на волнах http://max1net.com/

Сегодня на десерт: очередной урок Рэнда Фишкина о Google PR, его важности, заблуждениях относительно PR, и методах его применения в практике SEO




  • Игорь

    А вот как получить статической IP?

  • Все зависит от провайдера и роутера. Если провайдер дает такую возможность, то чутка покопавшись в настройках модема можно это сделать

  • Vasja

    когда защищаю вп контент таким способом при попытке посмотреть сайтмап хмл у меня выдаёт —  Ошибка загрузки таблицы стилей: Во время загрузки таблицы стилей XSLT произошла ошибка в сети:http://deti-i-my.ru/wp-content/plugins/google-sitemap-generator/sitemap.xsl

    это нормально? ботам поисковика случайно не такое же приходится видеть?

  • Ценная информация. Чес слово! В закладки!
    Кстати, Disqus обновился, у меня уже новый.

  • Не запрещайте доступ к CSS и XML:
    Order deny,allow
    Deny from all

    Allow from all

  • Упущена одна очень важная деталь. Я про файл wp-login.php. Проверьте по access_log зачастую атакуют именно его, а не wp-config.php. Хотя последний тоже будет не лишним прикрыть, как и саму директорию /wp-admin, да и другие. В общем лучше всё, что только можно прикрыть, рази что к index.php доступ оставить.

    С другой стороны есть ещё одна немаловажная проблема — нагрузка. Заходят вас задидосить и закрывайся, не закрывайся, а если виртуальных хостинг то вообще полный кирдык. Увы и ах, но проблема на самом деле не разрешима. Можно лишь пытаться как-то и что-то, увы. Удачи!

  • Благодарю за статью, теперь буду строить файл «.htaccess» по Вашему шаблону, радует что самому разбираться в коде не придётся, иначе я бы точно пропал…
    Рэнд Фишкин снова порадовал нескучным видео — ему тоже спасибо, будем аккуратнее с Page Rank-ом

  • Ложат и мощные сервера при желании, так что не панацея, конечно )

  • У меня ByFly (Минск) — просто пишешь заявление в центре обслуживания Белтелеком и получаешь статический IP. Никаких настроек модема не нужно.

Подпишитесь на рассылку блога
max1net.com:
Уже подписались человек
Укажите свой e-mail