Янв 24

23. Создаем блог: повышаем безопасность WordPress блога (часть 1)


безопасность WordPress блогаКак я и обещал в прошлый раз, сегодня мы займемся настройкой безопасности WordPress блога. Конечно, если мы создаем интернет-дневник, который будет интересен лишь нам и узкому кругу читателей, то над его защитой можно особо не напрягаться. Он попросту никому не будет интересен как объект взлома. Другое дело, если блог имеет огромную аудиторию читателей, на нем регулярно публикуются интересные материалы и, что самое главное, он приносит своему создателю хорошую прибыль. В данном случае шансы на то, что кто-то захочет его взломать возрастают в геометрической прогрессии. Зачем это кому-то нужно? Навскидку дам два примера. Представьте, что вы известный в широких кругах блоггер. Настолько известный, что доходы от вашего блога запросто позволяют вам не заморачиваться насчет поиска работы. Но в один прекрасный день вы пробуете зайти в админку блога и видите сообщение, что пароль для входа неверный (это не самый страшный сценарий, но для примера сойдет). На серце сразу холодеет, поскольку вы осознаете, что перестали контролировать свой основной источник дохода. Через некоторое время на почту приходит сообщение от злоумышленника, в котором он просит перечислить ему н-ную сумму денег, если хотите обратно получить доступ к своему блогу. Согласитесь, что в такие моменты уже будет неуместно думать, почему про защиту wordpress блога не позаботились заранее. Второй пример еще хуже. Если у вашего блога широкая аудитория читателей, которые вам доверяют, ничто не сможет помешать незаконному владельцу блога написать от вашего имени сообщение с просьбой одолжить ему лишние средства. К примеру, на неотложное лечение или еще что-то. Даже если в будущем вам удастся доказать, что блог был взломан, удар по репутации будет очень сильным. Надеюсь, я убедил вас, что повышению безопасности блога стоит уделить немножко своего времени. Стопроцентной гарантии от взлома никто не даст, но и облегчать жизнь злоумышленникам тоже не стоит.

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

1. Скрываем версию WordPress.
С каждой новой версией Вордпресса улучшается и его безопасность. Но проблема в том, что большинство вебмастеров неохотно переходит на новую версию. И это понятно, велик шанс на несовместимость плагинов. А если их установлено большое количество, то мало кому захочется с каждым обновлением разбираться с кучей новых ошибок. Да и читателям неприятно, когда на блоге что плохо работает. Проблема в том, что узнать, какие существуют дыры в безопасности той или иной версии блога не составляет особого труда. А если злоумышленник знает, на какой версии работает ваш блог, то ему будет значительно легче его взломать. Соответственно мы должны убрать любые упоминания про версию движка с нашего блога.
Если сейчас зайти на главную страницу блога и просмотреть ее исходный код, то практически в самом начале можно увидеть его ревизию.
Поэтому заходим ftp-клиент в папку с нашей темой, открываем в редакторе файл header.php и ищем там следующую строчку:

<meta name="generator" content="WordPress<?php bloginfo('version'); ?>" />

Убираем ее и сохраняем изменения. Отлично, теперь нам нужно отредактировать файл functions.php. Открываем его и добавляем после

<?php

такую строчку:

remove_action('wp_head','wp_generator');

Тут разобрались. Идем дальше.

2. Защищаем файл wp-config.php.
Как вы помните, в данном файле содержаться все настройки нашего блога, а также логин и пароль. Причем, в незашифрованном виде. Чтобы запретить доступ извне к данному файлу, переходим в корневую папку public_html на хостинге и добавляем перед строчкой #END WordPress в файле .htaccess следующий код:

# protect wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>

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

Поскольку имя автора блога и логин не всегда совпадают (я уже упоминал как это сделать), то злоумышленнику будет вдвойне сложней взломать блог, поскольку кроме пароля нужно знать и логин. А можно ему еще сильнее утруднить задачу убрав вывод вышеуказанной ошибки. Взломщик попросту не будет знать, что было введено неправильно. Опять открываем файл functions.php и добавляем после строчки

<?php

следующий код:

add_filter('login_errors',create_function('$a', "return null;"));

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

4. Закрываем просмотр папок.
В некоторых случаях (зависит от хостинга), каждый может спокойно просмотреть содержимое папок вашего блога на сервере. Чтобы исключить такую возможность советую открыть уже знакомый файл .htaccess и перед строкой # END WordPress вставить следующую:

Options -Indexes

5. Ограничиваем доступ к папкам wp-content и wp-includes.
В целях защиты WordPress блога желательно закрыть доступ к папкам wp-content и wp-includes и их содержимому. Оставим лишь доступ к картинкам, скриптам и css. Опять открываем .htaccess и вставляем следующий блок:

Order Allow,Deny
Deny from all
<Files ~ "\.(css|jpe?g|png|gif|js)$">
Allow from all
</Files>

6. Меняем права доступа на папки и файлы.
Прописать права можно и с помощью специального плагина, но кому не терпится может сделать это сейчас через ftp-клиент. Открываем FileZilla и заходим в папку public_html на нашем хостинге, где выставляем следующие права доступа: на папки – 755 (за исключением Cache и Uploads, на них – 777). На файлы – 644. Делается это очень просто. Правой кнопкой нажимаем на папку, выбираем пункт «Права доступа» и вводим нужное числовое значение, после чего жмем Ок. Вот и все. Еще один кирпичик в повышение безопасности WordPress блога мы вложили.

7. Борьба со спамом.
Вообще то для этого существуют отдельные плагины, но кое-что можно сделать уже сейчас добавив в .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>

Данный код проверяет, откуда был отправлен комментарий. Если с нашего блога, тогда он его пропустит. Если с иного сервера (а это означает, что использовалась программа рассылки спама) дорога такому комментарию будет закрыта.

8. Меняем логин администратора, а также ключи шифрования WordPress.
Про это я рассказывал еще на этапе установки блога на сервер. Если вы этого не делали, советую прочитать про смену логина и ключей аутентификации и поменять их на уникальные.

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


Если вам понравилась статья, вы можете подписаться на RSS, чтобы следить за новыми публикациями!

Вы также можете добавить статью в следующие социальные сервисы:

Написал DCDanton \\ теги: ,


Один комментарий к “23. Создаем блог: повышаем безопасность WordPress блога (часть 1)”

  1. 1. Сергей пишет:

    Спасибо Вам огромное за эти статьи, раньше думал, что меня всё это не коснется — коснулось...

    Подскажите, пожалуйста, если воспользоваться всеми этими советами, поисковые роботы смогу пробраться для индексации?

    Заранее спасибо, Сергей.

Highslide for Wordpress Plugin Проверка сайта Клуб Инвесторов. Обмен ссылками.