10+ способов защитить блог

Home » WordPress » 10+ способов защитить блог
47

Одна из самых актуальных проблем для вебмастера, который делает сайты на WordPress. Это защита блога, ведь эта CMS занимает второе место в ТОП-е Яндекса по заражённым сайтам Рунета.

10 способов защитить блог

И просто постоянное обновление версии движка особо не помогает, талантливые люди всегда умудряются находить слабые места WordPress.

Содержание:

Основные виды взлома сайта на WordPress

1. SQL инъекция – это возможность выполнить SQL команды к базе данных блога, путём составления специального кода для комментирования блога, форм обратной связи, плагинов.

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

3. Получен доступ к хостингу или административной части WordPress.

Защищаем блог от взлома

Добавьте секретные коды в wp-config.php

Добавьте секретные коды

Они служат для Аутентификация, то есть с помощью них проверяется правильность доступа. Одна из особенностей – при изменении ключей, произойдёт сброс всех cookies, пользователю надо будет заново залогиниться на сайте, введя пароль и логин. Сгенерировать их можно на сайте wordpress.org или придумать самим.

Измените префикс таблиц БД

По умолчанию, WordPress создаёт таблицы в базе данных MySQL с префиксом wp_ и если злоумышленник получит возможность обращаться к БД через SQL запросы , то он может послать запросы к базе данных, для внесения изменения в таблицы. Но когда не знаешь, как таблицы называются, то и обращаться не к чему.

И так, для уже работающего блога, надо:
1. Скачать файл wp-config.php и бекап базы данных на локальный компьютер. Все изменения делайте на локале!

2. Откройте wp-config.php и замените в строчке

$table_prefix = 'wp_';

На что-нибудь уникальное, например:

$table_prefix = 'fds341c_';

После этих изменений, WordPress будет обращаться к новым таблицам с префиксом fds341c_, а так как таблицы имеют ещё старый вид, то надо внести поправки в саму базу данных.

3.1 Откройте бекап вашей Базы данных в текстовом редакторе (лучше всего Notepad++) и поочередно замените все старые таблицы на новые, путём авто-замены. То есть, берёте название первой таблицы wp_commentmeta и заменяете его во всём файле на новое название fds341c_commentmeta и так для каждой таблицы.

Замена слов в базе данных

Не надо авто заменой заменять только префикс wp_, потому что он используется не только в названиях таблиц и вы можете испортить всю базу данных. Поэтому меняйте только полные названия таблиц.

3.2 Можно заменять старые названия SQL запросом:

RENAME TABLE wp_comments TO fds341c_comments;

Делайте всё на локальной машине, чтобы была возможность исправить, если где-то ошиблись.

4. Теперь изменённые файлы (wp-config.php и базу данных) надо заменить на хостинге. Заходите на хостинге в PhpMyaAdmin и удаляем старые таблицы сайта и импортируем тот файл sql, в котором вы редактировали название таблиц, должно получится примерно вот так:

Готовая таблица

5. После этого, замените старый файл wp-config.php на хостинге, тем, который мы редактировали в пункте №2. Чтобы WordPress соединился с новыми таблицами в базе данных.

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

Закройте доступ к файлу wp-config.php и .htaccess

В файле .htaccess укажите:

<Files wp-config.php>
  order allow,deny
  deny from all
</Files>

Для запрета доступа к файлу wp-config.php

<Files .htaccess>
  order allow,deny
  deny from all
</Files>

Эти инструкции апача закрывают доступ к самому файлу .htaccess

Отключите показ версии WordPress

Чтобы злоумышленники не смогли узнать, на какой версии WordPress работает сайт, надо в functions.php вашего шаблона прописать:

remove_action('wp_head', 'wp_generator');

Включите поддержку SSL при работе с админкой

SSL – это криптографический протокол. При использовании его, все передаваемые данные между браузером и сервером шифруются. При использовании админки у вас урл будет вот такого вида:

SSL для сайта

Для того чтобы активировать SSL шифрование, надо добавить в wp-config.php, вот такую строчку:

define('FORCE_SSL_LOGIN', true);

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

Я кстати использую FastVps, он поддерживает всё или почти всё :) , советую.

Блокируйте неудачные попытки входа

Для этого подойдёт плагин Limit Login Attempts.

С помощью него можно настроить:

  • Сколько можно совершить попыток неудачного ввода логина и пароля;
  • На сколько часов изолировать ip, после неудачных попыток залогинится;
  • Ведётся история блокировок, с записью времени и IP.

Замените стандартный логин - admin

Большинство блогеров не изменяют стандартный логин и оставляют admin по умолчанию, хотя лучше всего заменить на что-нибудь по сложнее.

Поменять можно SQL запросом:

UPDATE wp_users SET user_login = 'Новый_Логин' WHERE user_login = 'admin';

Для тех кто не знает – SQL запрос можно выполнить в PhpMyAdmin, вкладка SQL:

SQL запрос

Отключите сообщение об ошибке авторизации

WordPress по умолчанию показывает тип ошибки

сообщение об ошибке авторизации

а это дополнительный бонус для хакеров, при подборе логина и пароля для входа в административную панель.

Чтобы убрать вывод ошибки, надо в functions.php прописать:

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

Закройте все папки сайта от просмотра в браузере

Через браузер можно попасть в папки uploads или plugins:

Закройте все папки сайта от просмотра в браузере

Чтоб этого не происходило, в файле .htaccess укажите:

Options -Indexes

Теперь при попытке зайти в папку, будет выдаваться сообщение, что у вас нет прав доступа.

Установите плагин для сканирования сайта

Для этого отлично подойдёт Exploit Scanner, он проверяет файлы WordPress, шаблона, комментарии, посты на наличие подозрительного кода.

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

Измените права доступа для папок

Для всех основных папок в WordPress, можно установить права доступа 755, а именно для:

/wp-admin/
/wp-includes/
/wp-content/
/wp-content/themes/
/wp-content/plugins/

Замените везде пароли

1. Пароль на доступ к хостингу, FTP;
2. Пароль для доступа к PhpMyAdmin (если возможно), пароль на базу данных;
3. Пароль на доступ в админку блога.

И использовать не один пароль для всего, а везде разный и лучше всего сгенерировать символов из 15-16 :) , для этого в помощь сервис – strongpassword.

Проблема только с хранением таких паролей, в голове ведь не удержишь. Можно как вариант зарегистрировать новую почту на gmail и хранить в Google Docs, или записать их все в блокнот :) .

Постоянно обновляйте WP и плагины

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

Вывод

В настоящее время взломаны тысячи сайтов на WP и многие хозяева даже не подозревают об этом. Одна из причин взлома – это размещение скрытых ссылок на свои сайты. То есть владелец сайта их не видит, а они есть:

Взломанные сайты WordPress

Я поискал в Google ещё сайты, у которых есть точно такие же скрытые ссылки как выше на скриншоте:

Взломанные сайты WordPress

Можно увидеть, какое огромное количество сайтов взломано и это только один вид взлома и одного хакера.

После взлома очень сильно проседает поисковый трафик:

Падение трафика после взлома

И ещё

Падение трафика после взлома

Не вооружённым глазом заметно, что с сайтом что-то не так. Если у вас в течении двух-трёх недель так сильно падает трафик или сайт стал медленно работать, или падают резко позиции - не ленитесь, проверьте свой сайт на скрытые ссылки, iframe и.т.п. И сделайте всё то, что написано в этой статье.

100% безопасности это способы не дают, но всё равно лучше, чем ничего :)

Не забывайте подписываться на RSS.


Статья участвует в конкурсе «TOP-10» от Сергея Шелвина с призовым фондом в 500$!
MarkDay.ru – сообщество оптимизаторов, вебмастеров и манимейкеров


MarkDay.ru – сообщество оптимизаторов, вебмастеров и манимейкеров.

Не забудьте подписаться Подписка через RSS-feed через rss и Следовать в Твиттере следовать в twitter-e — для получения обновлений блога.
Подписаться на обновление по почте:

Советую ещё почитать:

47 Сообщений

  1. jkeks:

    Отличный материал, кроме того рекомендую воспользоваться сервисом для отслеживания новых внешних ссылок и размера страниц: http://jkeks.ru/jAntivirus . Сервис бесплатный.

  2. GerinG111:

    За плагин спасибо, пошёл сканировать ))

    • Cospi:

      Лучше ночью сканируй, много ресурсов употребялет. Сайт лечь может, если хостинг слабенький.

  3. Вячеслав:

    Супер, вот за такие посты я и люблю ваш блог :)
    Как давно я хотел заняться защитой своих блогов, теперь инструкция нужно приступать. А статья в еверноут полетела :)

  4. Dmitry:

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

    • Cospi:

      В любое время надо это делать. Особенно сложные пароли поставить и обновить всё.

  5. Webpsyhopat:

    Отличная статья. Спасибо.
    От себя могу добавить — использую еще плагины Belavir — проверка целостности файлов и TAC (Theme Authenticity Checker) — сканирует файлы темы на наличие изменений.

  6. balabol:

    А как же Anti-XSS, защищает от xss-атак?
    Как вы считаете, пароли в Chrome сохранять опасно?

    • Cospi:

      Насчёт паролей в браузере не могу сказать. В любом случае надо антивирус нормальный ставить, чтоб не боятся про пароли.

  7. Руслан:

    полезно, видно что не поленился написать статью

  8. Сергей:

    Очень нужно, а для меня, своевременно. Большое спасибо.
    С уважением, Сергей.

  9. Сергей:

    Спасибо! Кое-что уже делал, остальное испытаю на днях.

  10. Lirov:

    Привет Евгений !

    А не подскажите ли первоисточник «ТОП Яндекса по заражённым сайтам Рунета». Чтобы глянуть другие CMS и рекомендации. В поисковике не нашел.

  11. balabol:

    После того как мы заменили префикс wp_ на своей, необходимо открыть две таблицы – option и usermeta.
    Где в таблице usermeta в столбце meta_key меняем все пункты с вхождением старого префикса на новый. А вот в таблице options необходимо в столбце option_name найти пункт wp_user_roles и изменить wp на новый префикс.

    Эти пункты обязательно надо выполнить. Иначе в админку зайти не сможете.
    Добавь это в статью Cospi

    • Cospi:

      При замене в дампе БД через текстовый редактор, всё меняется. У меня по крайней мере заработало.

  12. Игорь:

    Да,безопасность-это серьезная вещь!
    Очень полезный пост,с некоторыми пунктами знаком,некоторые для меня явились приятным сюрпризом.

  13. Игорь:

    Для сохранения паролей — roboform,вполне надежен,хотя о стопроцентной гарантии,конечно,речь идти не может.

  14. Ирина:

    Здравствуйте, Евгений! Да, пост серьезный! Скажите, пожалуйста, а где смотреть эти ссылки, которые у Вас показаны в пункте «Выводы» на скриншоте. Спасибо!

    • Cospi:

      Это исходный код страницы сайта. Лучше всего установите RDS bar и смотрите в нём внешние ссылки со страницы.

  15. Lirov:

    Благодарю Вас, Евгений за первоисточник.

    Классная Статья!!! Может еще напишете нюансы и рекомендации для Drupal ??
    Кстати, там в отзывах- «…большая часть взломов происходит из-за того, что люди до сих пор используют FTP. Либо трояном крадётся пароль, либо снифится. ……Если вы работаете с FTP сервером только с определённых IP, для запрета доступа с других IP можно использовать конфигурационный файл .ftpaccess»" = Может допишите пример?? Наверное этого- «Options -Indexes» будет не достаточно.

    • Cospi:

      Я с Drupal никогда не работал, поэтому не ориентируюсь даже. Но постоянные обновления и хороший пароль так же подойдут и для Drupal :) С .ftpaccess так же не знаком. FTP и вправду лучше не использовать, а соединятся с сервером с помощью SSH или SFTP.

  16. howtomake:

    Привет, пост отлично написан (точнее переведен с большим количеством новой инфы) приятно читать, спасибо

  17. Денис:

    Не вижу смысла менять префикс таблиц, если уж злоумышленник получил возможность выполнять SQL запросы, что помешает ему выполнить SHOW TABLES?

    • Cospi:

      А если не получил он такой возможности? И запросы выполняет какой-нибудь плагин при активации.

  18. ExcluZive:

    Для вордпресс, кроме этого, есть несколько плагинов защищающих от взлома)

    • Cospi:

      В основном плагины делают именно то, что описано в статье. Но есть и необходимые плагины, такие как сканеры и.т.п.

  19. Анастасия:

    Очень грамотно написана статья. Очень подробно рассказано о таком, «непопулярном» в среде новичков, файле .htaccess, благодаря которому, кстати, можно делать удивительные вещи =)

  20. Иван:

    Все советы хороши, но важно выделить главное по принципу 80/20, чтобы впустую не терять время.

    Например, непонятен пункт «Закройте доступ к файлу wp-config.php и .htaccess», а точнее непонятно, как эти файлы могут стать доступны злоумышленникам. Так ли нужно закрывать этот доступ?

    А также, действительно ли нужно настоящим взломщикам сообщение о возможности востановить пароль? Наверно, и так взломают, а от начинающих и сложный пароль защитит.

    • Cospi:

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

      В последнее время популярный взлом с добавлением редиректа в файл .htaccess для мобильного трафика, то есть визуально для владельца взлом не заметен, а вот все мобильные посетители перенапровляются.

      И вы не верно читали статью, в ней написано отключить «сообщение об ошибке авторизации», а не про восстановление пароля.

  21. Эльвира:

    Как же все серьезно и трудно.
    Однажды я попыталась проделать множество манипуляций, следуя инструкциям на одном сайте — уже не помню, на каком. Я ради безопасности на всего лишь одном (!) сайте все каникулы просидела — вникала, искала, делала замены. Короче, пришлось бэкап делать ))
    Нет, «пироги должен печь пирожник, а сапоги чинить — сапожник».
    Не подскажете, уважаемый автор, кто может помочь навести порядок на сайтах (у меня их 3), в смысле на хостингах почистить БД? Я бы и пароли, и явки сдала… Но только по ВАШЕЙ рекомендации.

    • Cospi:

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

  22. oriolo:

    Полезная статья, многого не знала.
    Я еще читала, что для защиты папки с плагинами в нее надо положить .htaccess, содержащий строку «Deny from all».

  23. Webpsyhopat:

    Уважаемый блоггер, твоя статья попала в мой персональный ТОП10 участников конкурса Сергея Шелвина. Ознакомиться с ТОПом можно на моем блоге. http://webpsyhopat.ru/top-10-uchastnikov-konkursa-top-10-po-versii-vebpsixopata Надеюсь Вы не против?

  24. Irina:

    Прописала в wp-config.php

    order allow,deny
    deny from all

    Теперь при открытии сайта: в ночале страницы строчка:»order allow,deny
    deny from all», а потом остальная страница.
    По мойму так не должно быть??? Не подскажете с чем это может быть связано?
    Спасибо

    • Cospi:

      Это надо в файле htaccess прописывать, вот так :


      order allow,deny
      deny from all

      И wp-config вообще не трогайте.

  25. Irina:

    в вдогонку к предыдущему комменту, скажите вот этот код в разделе:»Закройте доступ к файлу wp-config.php и .htaccess», надо копировать как у вас на блоге прописано? и в каком месте его вставлять?
    Я скопипастила этот код и у меня теперь: Parse error: syntax error, unexpected ‘<' in …../www/wp-config.php on line 86
    Класненько спрятались, даже от себя, теперь в моей админке ничего не редактируется (((

  26. Дмитрий:

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

  27. Александр:

    Несомненно полезная статья. Я пару раз сталкивался со взломом своего сайта, так, что теперь постоянно обновляю плагины.

  28. Манюня:

    Привет!

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

  29. Евгений:

    Спасибо довольно актуально для меня. У меня так и получилось что только по сервису Соломоно увидел что мой сайт на вордпресс взломан и напичкан ссылками. Пришлось полностью его переделывать. Спасибо за информацию!

  30. Добрый Виктор:

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

Оставь Комментарий

Подписаться на обновление, без комментирования:

© 2013 Cospi.ru| All rights reserved | Карта сайта.