5 практических решений для защита сайта от взлома

Чем больше внимания привлекает Ваш сайт (растет посещаемость, узнаваемость и т.д.), тем больше находится желающих Вам подо**ать. Неважно кто это — конкуренты, завистники или просто «Вася» из соседнего города, но они попытаются взломать Ваш сайт.

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

Сейчас, когда Ваш сайт обретает черты чего-то большего чем онлайн-дневничок, самое время подумать о безопасности, но как бы хороши не были контрацептивы, тут они не помогут ;). Здесь понадобится немного иной подход.

Несколько практических и принципиально действенных рекомендаций и решений по защите блога на wordpress от взлома

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

1. Не используйте логин «admin»

Это первое, что приходит на ум. При установке wordpress система предлагает в качестве имени основного пользователя использовать «admin». Большая часть пользователей оставляют это имя по-умолчанию и совершенно зря. Задача злоумышленников упрощается многократно, теперь им достаточно подобрать пароль, ведь логин они уже знают.

Свежие версии wordpress, начиная с 3.0, имеют в своем арсенале опцию изменения логина администратора сайта. Но если у Вас, как и у меня, версия более древняя :), тогда на помощь придет SQL запрос, который необходимо выполнить в панели phpMyadmin:

UPDATE wp_users SET user_login = 'новое_более_сложное_имя_администратора' WHERE user_login = 'admin';

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

А еще можно создать нового пользователя с правами администратора, с более сложным логин и паролем, а стандартного юзера «admin» с id=1 просто удалить, предварительно указав в опции «Связать все записи и ссылки с:» своего нового, только что созданного пользователя. Тоже хороший вариант 😉

2. Сгенерируйте и пропишите уникальные ключи аутентификации

В файле wp-config.php (или wp-config-sample.php при установке) имеются строки уникальных фраз:

define(‘AUTH_KEY’, ‘vasha_unikalnaya_fraza’);
define(‘SECURE_AUTH_KEY’, ‘vasha_unikalnaya_fraza’);
define(‘LOGGED_IN_KEY’, ‘vasha_unikalnaya_fraza’);
define(‘NONCE_KEY’, ‘vasha_unikalnaya_fraza’);
define(‘AUTH_SALT’, ‘vasha_unikalnaya_fraza’);
define(‘SECURE_AUTH_SALT’, ‘vasha_unikalnaya_fraza’);
define(‘LOGGED_IN_SALT’, ‘vasha_unikalnaya_fraza’);
define(‘NONCE_SALT’, ‘vasha_unikalnaya_fraza’);

Эти строки усиливают безопасность Вашего блога хешированием (шифрованием) паролей. Чтобы получить полностью готовые к употреблению строки уникальных фраз, достаточно пройти по адресу https://api.wordpress.org/secret-key/1.1/salt/. Система выдаст Вам что-то подобное:

define(‘AUTH_KEY’, ‘`rgC;!Zcz+N7n+KR*30DXo«|,~COTB^OD&A+m3 define(‘SECURE_AUTH_KEY’, ‘]w(,Y;euh$ Byo-w$u{;hn|m&_Ws`}_xv*5%4m9CS[=W3Yp-?akJNa:+fb-QpSN-‘);
define(‘LOGGED_IN_KEY’, ‘&-y
GG#Z|=S6fV{@QF1I-Jh[*ce`qL75|mcI]0b92}~+K1(< !fjoJ}0{,`RI’);
define(‘NONCE_KEY’, ‘0!lV!.JLoTv%*EM]Jl$P$wDMZYhCA.%4%LC|V`fM}J+-J7WPiZac7ab+99GW7Q2]jslS>%2CK5<+w:W:0OXK7d=a88R^B+DCn$C_7&~pBLIR+-Mybj[s2H;L{$v>,_-/6’);
define(‘NONCE_SALT’, ‘dz-S3&#j|T`oW-|B{2nj<]1|H)MV]q9[QIzlqng(e,HPs]1?J:6B3/V6a>’);

3. Воспользуйтесь плагином Login LockDown

Плагин для wordpress Login LockDown защитит Вашу панель администратора от взломщиков

Принцип работы плагина Login LockDown достаточно прост, но в тоже время функции, которыми он обладает, незаменимы в общей структуре безопасности сайта. Он предотвратит попытки взлома подбором комбинаций логина/пароля панели администратора вашего wordpress блога.

Login LockDown ведет лог всех неудачных попыток входа в админ-панель. В эти логи входит такая информация, как IP адрес пользователя, время попыток, периоды между повторными пробами авторизаций и если таковых из одного диапазона IP адресов становится больше, чем установлено Вами в настройках плагина, то система блокирует дальнейшие попытки входа.

По-умолчанию плагин имеет достаточно жесткие ограничения на попытки входа в систему (3 попытки с интервалом в 5 минут с небольшого диапазона IP адресов, если неудачно — блокирует на 1 час), потому в каких-то особых настройках не нуждается. Установили и забыли ;).

Настройки плагина для wordpress Login LockDown

4. Защитите содержимое папок wp-includes и wp-content

Это невероятно, но содержимое этих папок очень часто можно просматривать прямо из браузера. Достаточно набрать в адресной строке http://pervushin.com/блог/wp-includes или http://pervushin.com/блог/wp-content, или http://pervushin.com/блог/wp-content/plugins и в браузере отобразится список файлов конкретной директории:

Содержимое папки plugins прямо из браузера!

Попробуйте на своем блоге, видите? Это совершенно недопустимо, надо исправлять, мы же не хотим, чтобы кто-то изучал структуру нашей темы, например ;).

а) Исправляется это достаточно просто. Создаем пустой файл index.html или index.php и забрасываем во все имеющиеся папки и подпапки.

б) Можно расширить функциональную часть этих файлов редиректом. Опять же, создаем файл index.html или index.php, но на этот раз добавляем в этот файл строку:

<meta HTTP-EQUIV="REFRESH" content="0; url=http://pervushin.com/адрессайта/">

Забрасываем этот файл во все директории указанных папок и пробуем набрать, например, http://pervushin.com/адресайта/wp-includes. Ну как? Перебросило на главную Вашего сайта? Наверное так даже лучше будет 🙂

в) А еще можно установить плагин AskApache Password Protect, который добавит более серьезную защиту папкам wp-admin, wp-includes, wp-content и их содержимому.

Вроде бы и заканчивать на этом можно, но способов в статье озвучено 4, а в заголовке почему-то 5 :). Для полного комплекта давайте добавим пятый пункт.

5. Общие рекомендации по защите блога на wordpress

регулярно делайте бекап всех данных сайта, начиная с файлов самого wordpress и заканчивая базой данных mysql. Как это делается читайте здесь.

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

удалите неиспользуемые плагины, темы и неактивных пользователей. Неиспользуемые и даже не активированные плагины и темы могут послужить злоумышленнику в поисках «узких» мест в вашем сайте, не дайте ему такой возможности.

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

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

Удачи Вам, друзья, берегите себя и свои труды!

p.s. 100 рублей за последний комментарий — продолжим? Условия здесь (кстати, призовой фонд того поста пополняется каждую неделю на 10 рублей ;)).

Комментарии

38 на запись "5 практических решений для защита сайта от взлома"
  1. Geny says:

    Спасибо! Очень полезная статья. В закладки!

  2. Особенно порадовала вкладка Полезное:  
    Кстати как на это смотрят в Яндекс директе??

  3. Да-да, верно подмечено, логи мониторить тоже очень полезно.

    >>похоже я не буду последним
    Ну это уж как захотите 😉

  4. Аноним says:

    Отличная статья Серёга! Паразиты постоянно совершенствуют свою технику проникновения, поэтому, если будет новая информация по защите блога — непременно пишите пост.

  5. Попробуйте, надеюсь поможет.

  6. На данный момент защита сайта это актуально и не требует дополнительных комментариев.

  7. Сделал все по пунктам. Спасибо за статью.

  8. AJxKorsar says:

    А причем тут взломали блог и троянская угроза? Совершенно не совместимые понятия. Все «трояны» — исполняемые файлы, которые ни каким «макаром» через админку CMS не запихнуть на сервер.У вас можно скачать с сайта, что нибудь?
    Троянская угроза может выскакивать, скорее всего, из-за того, что хакеры, или вы сами запихнули троян в zip архив. Все нормальные антивирусы это прекрасно видят. 
    На админку можете не грешить, через нее троян не пропихнуть. Вот если бы у вас взломали аккаунт хостинга, то другое дело. Но тогда (мне почему-то кажется) вы бы и в админку зайти не смогли.
    …….
    Сергей, спасибо за напоминание. Пора, пора бэкап файлов сделать.

  9. Если не хотите потерять свой блог, то пора задуматься о его защите.

    • @aa97ed4098bd87cccd7e35c86095ef4b:disqus Ваш комментарий заработал 100 рублей. Сообщите мне свой WMR кошелек по email sergey [гав] pervushin.com, на который Вы хотите получить выигрыш.

  10. Да, значит у Вас все в порядке, есть пустые index.php или hml

  11. Сергей, спасибо за пошаговые, а главное понятные инструкции. Все сделала, как Вы написали!

  12. Рекомендую присмотреться к FastVPS (http://pervushin.com/discount-hosting-vps-vds-dedicated-reader-pervushincom.html ). Ребята отзывчивые, не отправят на сторону искать решения, а помогут сами.

    Что касается вируса. Очень по-разному бывает. Но как вариант, необходимо просмотреть все файлы на изменения. Смотрим последнюю дату изменения файла и если она «свежая», т.е. файл изменился в тот период, когда Вы сами операций с этим файлом не производили или знаете примерную дату начала проблем, и если находим такой файл, ищем в нем «левый» код. Работа рутинная, конечно.

  13. Да, это какая-то странная служба и видимо странного хостинга 🙂 

    Я рад, что все закончилось благополучно.

  14. Удалить его можно через FTP, если он конечно не отключается обычным способом.
    Что касается работы плагинов, их установки и удаления, то, судя по названию плагина (password protect), он должен у себя в настройках содержать какое-то поле, в которое необходимо прописать пароль. Собственно этот пароль будет защитой от несанкционированных действий.

    Я его предложил, как альтернативу настройке руками, так как сам все возможное стараюсь делать именно так, избегая установки лишних плагинов там где это возможно. Собственно сам с этим плагином не работал, потому нет подробного описания в статье :(.

  15. Спасибо Вам ;). Что касается взлома, то, к счастью, меня ни разу не взламывали. А может не нужно никому было 🙂

  16. сергей добрый день. Подскажите пожалуйста. У меня взломали пароль админки, не могу восстановить через почту, что можно сделать еще? И за статью огромное спасибо.

    • Анна says:

      uCoz+WordPress=SuperГС 🙂 — значит был использован стэк, или взломали через броузер либо Google, либо FireFox — обратиться к хостеру, вот что сделать! Попросить заблочить сайт, по-возможности создать резервную копию посредством помощи хостера(если такая помощь есть), даль удалять сайт и заливать по новой. Переходить на «коробочку» если позволяют средства…

  17. Andrei Yrichyk says:

    Читаю и удивляюсь много во я не знал, насчет защиты а точнее аж 3 пункта, благодарю Сергей 🙂

  18. Andrei Yrichyk says:

    Хочется еще дополнить плагин Login LockDown довольно хорош для защиты но там необходимо сделать маленький хак что бы не показывало взмомщику сколько у него осталось попыток

  19. Отличная статья, спасибо

  20. тема работает на wp 4.0, попытки взлома постоянно заканчивались Internal Server Error, а сейчас посмотрим

  21. Максим says:

    Здравствуйте, Сергей. Видел статью про закрытие листинга при помощи записи «Options All -Indexes» в .htaccess. Как вы думаете есть ли у этого метода недостатки? Так то теперь 301 выдает. Но как то это странно. Могут ли быть нарушения в работе сайта?

  22. Хорошая статья, спасибо. А что Вы думаете о плагине Better WordPress secuirity? Он у меня установлен, но вирусы лезут на сайт постоянно. Кроме того, если прописать дополнительные строки в wp-config.php, это не будет мешать админу работать с сайтом?

  23. Olga says:

    Создала по вашему совету пусте index.html и теперь когда сама пытаюсь зайти в админку вижу белый экран. Как решить эту проблему, не подскажете?

  24. Ptah says:

    Респект автору! К сожалению не удалось попробовать — мой хостер все защитил….

Спасибо, что оставили свой комментарий

banner