MMGP logo
Присоединяйтесь к нашему инвестиционному форуму, на котором уже 642,070 пользователей. Чтобы получить доступ ко многим закрытым разделам и начать общение - зарегистрируйтесь прямо сейчас.
Нужна помощь в администрировании сервера? Вся кухня околохостинговых вопросов (Apache, Mysql, Mod_Rewrite, Htaccess, Анализирование логов, Безопасность) обсуждается именно в этом разделе. Любая реклама хостиговых компаний запрещена и обсуждается только в специальном разделе.
Старый 04.12.2016, 12:48
#1
Интересующийся
 
Регистрация: 11.11.2016
Сообщений: 25
Благодарностей: 2
На сегодняшний день WordPress как никогда популярен. Блоги, мини-сайты, а то и целые порталы — всё это строится на основе такого удобного движка-конструктора как WordPress. Но за удобностью и лёгкостью освоения кроются, прежде всего, вопросы, связанные с безопасностью вашего сайта. Большая распространённость — большее внимание злоумышленников.

1. Защита WordPress от XSS-инъекций

В чём проблема?
Программисты всегда стараются защитить GET- и POST- запросы, однако, иногда этого недостаточно. Необходимо защитить блог от XSS-инъекций и попыток модификации переменных GLOBALS и _REQUEST.

Что делаем?
Этот код блокирует использование XSS-инъекций и попытки модифицировать переменные GLOBALS и _REQUEST. Вставьте код в ваш файл .htaccess, расположенный в корне сайта. (И не забывайте бэкапить этот файл перед внесением любых изменений).

Код: Options +FollowSymLinksRewriteEngine OnRewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})RewriteRule ^(.*)$ index.php [F,L]
Как это работает?
Код позволяет проверять все запросы. Если запрос содержит тег или попытку модифицировать значение переменных GLOBALS и _REQUEST, он просто блокирует его и выдаёт пользователю 403-ю ошибку.


2. Убираем показ лишней информации

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

Что делаем?
Открываем functions.php, лежащий в папке с активной темой нашего блога (wp-content/themes/название-вашей-темы/) и добавляем следующий код:
Код: add_filter('login_errors',create_function('$a', "return null;"));сохраняем файл. Вуаля – больше никаких сообщений.

Как это работает?
С помощью этого хука мы переписываем стандартную функцию login_errors(). В результате этого, в случае, когда введены неправильный логин или пароль, никакой информации, объясняющей ситуацию не появится — то, что нам нужно.

3. Принудительное использование SSL

В чём проблема?
Если вы хотите, чтобы передаваемая вами информация была защищена, вам необходимо использовать SSL—протокол, обеспечивающий целостность и конфиденциальность обмена данными. В WordPress’e это сделать проще простого.

Что делаем?
Прежде всего узнаём, есть ли возможность у вашего провайдера использовать SSL. Если да, то открываем файл wp-config.php (обитающий в корне сайта) и добавляем следующую строку:
Код: define('FORCE_SSL_ADMIN', true);Как это работает?

Всё просто. WordPress использует множество констант и FORCE_SSL_ADMIN всего лишь одна из них. Эта константа включает принудительное использование SSL при заходе в панель администратора.

4. Используем .htaccess для защиты файла wp-config

В чём проблема?
wp-config.php содержит все данные, необходимые для подключения к серверу MySQL и базе данных. Защита этого файла – одна из самых главных задач.

Что делаем?
Находим файл .htaccess в корне нашего сайта и добавляем следующие строки:

Код: <files wp-config.php>order allow,denydeny from all</files>Как это работает?
Мы просто запрещаем доступ к этому файлу кому бы то ни было. Теперь уж точно ни один бот не сможет и близко подойти к этому файлу.

5. Скрываем версию WordPress’a

В чём проблема?
Wordpress автоматически вставляет номер своей версии в исходный код страниц. К сожалению, не всегда удаётся вовремя обновлять движок. А это означает, что зная какая у вас версия WordPress’a со всеми её брешами и слабыми местами, злоумышленник может очень-очень огорчить вас. Что делаем? Правильно, убираем вывод версии.

Что делаем?
Снова открываем functions.php, лежащий в папке с активной темой нашего блога (wp-content/themes/название-вашей-темы/) и добавляем туда этот код –
Код: remove_action('wp_head', 'wp_generator');Как это работает?
Хуки WordPress'a позволяют легко заменять одну функцию на другую. Именно этим мы сейчас и воспользовались – мы просто запретили вывод информации о версии нашего движка.

+ как справедливо указал пользователь rOOse, необходимо также удалить файл readme.html, находящийся в корне сайта. В нём тоже содержится информация о текущей версии WordPress’a.

6. Баним спамеров и ботов

В чём проблема?
Надоедливые постеры и спамеры. Решение – запретить им доступ к сайту по IP. Конечно, это не защитит от спам-скриптов, постоянно меняющих прокси, но немного облегчить жизнь вполне может.

Что делаем?
Вставьте этот код в файл .htaccess. Просто поменяйте адрес 123.456.789 на IP того нехорошего человека, который вас достаёт и всё — он забанен всерьёз и надолго.
Код: <Limit GET POST PUT>order allow,denyallow from alldeny from 123.456.789</LIMIT>Как это работает?
И снова нам на помощь приходит apache. Посредством файла .htaccess мы запрещаем доступ к сайтe пользователям с конкретным IP. Нужно забанить ещё кого-то? Просто добавим ещё одну строку, к примеру -

Код: deny from 393.221.2887. Пишем плагин для защиты от зловредных url-запросов

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

Что делаем?
Создаём новый файл под названием blockbadqueries.php и помещаем его в папку wp-content/plugins. Затем просто активируйте его в админке как любой другой плагин.
PHP код:
Код:
 
Код:
&lt;?php
/*
Plugin*Name:*Block*Bad*Queries
Plugin*URI:*perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests
Description:*Protect*WordPress*Against*Malicious*URL*Requests
Author*URI:*perishablepress.com
Author:*Perishable*Press
Version:*1.0
*/
global*$user_ID;*
*
if($user_ID)*{
**if(!current_user_can('level_10'))*{
****if*(strlen($_SERVER['REQUEST_URI'])*&gt;*255*||
******strpos($_SERVER['REQUEST_URI'],*"eval(")*||
******strpos($_SERVER['REQUEST_URI'],*"CONCAT")*||
******strpos($_SERVER['REQUEST_URI'],*"UNION+SELECT")*||
******strpos($_SERVER['REQUEST_URI'],*"base64"))*{
********@header("HTTP/1.1*414*Request-URI*Too*Long");
****@header("Status:*414*Request-URI*Too*Long");
****@header("Connection:*Close");
****@exit;
****}
**}
}
?>*
Как это работает?
Работа этого плагина проста – он проверяет все длинные запросы (более 255 символов) и наличие php-функций eval или base64 в URI. Если что-то из этого находится, браузеру пользователя отдаётся страница с ошибкой 414.

8. Личеры!

В чём проблема?
Мир полон добрых людей, которые изо всех сил пытаются донести до других новость или статью, написанную вами. Всё бы ничего, но ведь по доброте душевной они берут картинки прямо с наших с вами серверов, скромно забывая при этом про слово «трафик». А теперь представьте что будет, если ссылки на наши картинки попадут на какой-нибудь популярный китайский блог, с их-то почти уже четырёхсотмиллионным интернет-населением! Свят-свят-свят… Значит сейчас будем защищать хотлинкинг, a.k.a. личинг, a.k.a. «да я просто вставил ссылки на файлы с вашего сервера».

Что делаем?
И опять всемогущий apache поможет защищить нам наш трафик. Достаём в очередной раз файлик .htaccess и пишем следующее:
Код: RewriteEngine On#Замените ?mysite.ru/ на адрес вашего сайтаRewriteCond %{HTTP_REFERER} !^https://(.+.)?mysite.ru/ [NC]RewriteCond %{HTTP_REFERER} !^$#Замените /images/nohotlink.jpg на название вашей картинки с лозунгом «личер идёт на…»RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]Как это работает?
При помощи этих правил мы заставляем сервер проверять откуда пришёл запрос на нашу фотку — если со страниц нашего сайта, он отдаёт её пользователю. Если с «вражеского» — то показывает личерам какую-нибудь обидную картинку.

9. Удаляем учетную запись админа для защиты wordpress.

В чём проблема?
Злоумышленникам всегда проще получить доступ к сайту при помощи брута, если уже известен логин. При этом на протяжении многих лет дефолтный логин админа был примитивным до зубного скрежета — «admin».
  • Надо сказать, что в новом WordPress 3.0 у вас есть право указать любой логин, какой только душе будет угодно. Для остальных версий нужно применить одно волшебное заклинание.
Что делаем?
Просто выполняем этот запрос к базе данных:
Код: UPDATE wp_users SET user_login = 'Ваш новый логин' WHERE user_login = 'Admin';Как это работает?
С помощью sql-запроса меняем дефолтный логин. Правда, есть одно «но». Посты, написанные ранее admin'ом не поменяют своего автора. А для того чтобы извести admin'a на корню, необходимо выполнить ещё один запрос:

Код: UPDATE wp_posts SET post_author = 'Ваш новый логин' WHERE post_author = 'admin';10. Защита директорий на сервере от просмотра

В чём проблема?
Очень многие хостеры позволяют просматривать директории на своих серверах. Поэтому, если ввести в адресную строку www.вашблог.ru/wp-includes, то очень часто можно увидеть всё содержимое этой директории. Безусловно это небезопасно, поэтому лучше это сразу запретить.

Что делаем?
Вы можете либо добавить пустые файлы index.html в папки, просмотр которых хотели бы запретить. Либо дополнить наш .htaccess ещё одной строкой:
Код: Options All -IndexesКак это работает?
Пустой index.html будет выдаваться каждый раз, когда последует запрос к директории. Ну а директива в .htaccess просто запрещает апачу выдавать список содержимого директории.

11. Проверка сервера на предмет установленных руткитов

Финальным аккордом являлась проверка хоста на установленные руткиты. Для этого можно использовать бесплатную утилиту rkhunter. Скачиваем архив с последней версией, распаковываем его и запускаем инсталлер. Далее делаем его обновление и запускаем проверку:
Код: [root@myhost ~]# ./installer.sh --install --layout /usr/local[root@myhost ~]# /usr/local/bin/rkhunter –-update[root@myhost ~]# /usr/local/bin/rkhunter –-checkRkhunter в начале проверят важные системные файлы, затем ищет руткиты. После происходит проверка на различные vulnerabilities. В конце программа проверяет версии популярных продуктов, таких как Apache, OpenSSH и т.п. на предмет последних версий.

Результаты своей работы rkhunter выдает в консоль, а также формирует консолидированный лог /var/log/rkhunter.log. Можно запускать данный антируткит каждый день по крону и получать отчет о сканировании по электронной почте.

Заключение

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

Если вы работаете над шабашкой, все равно код нужно постоянно проверять, ведь не должно быть уязвимостей в библиотеках, которые вы используете.
iwolf вне форума
Сказали спасибо:
HeadDe (04.12.2016)
Старый 15.01.2017, 09:56
#2
Интересующийся
 
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 27.11.2011
Сообщений: 15
Благодарностей: 0
Re: Как защитить WordPress сайт.

отличная статья
Igor2011 вне форума
Старый 24.01.2017, 02:13
#3
Любитель
 
Регистрация: 19.12.2016
Сообщений: 198
Благодарностей: 23
Re: Как защитить WordPress сайт.

Весьма познавательно))
Спасибо за статью)
HeadDe вне форума
Старый 24.01.2017, 18:16
#4
Любитель
 
Пол: Женский
Инвестирую в: Свой бизнес
Регистрация: 16.07.2013
Сообщений: 835
Благодарностей: 263
Re: Как защитить WordPress сайт.

iwolf, статья очень полезная, но надо бы источник указать.

Почему-то до сегодняшнего дня не задумывалась, что пора бы позаботиться о безопасности сайта, ибо уже посещаемость приличная. Но вот увидела все эти шаги и страшно стало)

Я в свое время сделала пару манипуляций и на этом остановилась. В том числе изменила стандартную директорию wp-login.php на свою. Это тоже помогает как защитная мера, как я понимаю? И снижает нагрузку на сервер вроде как. Надо бы на досуге остальное тоже проделать. Спасибо, что притащили статью) Только источник нужен все-таки.
duckwithtruck вне форума
Старый 04.04.2017, 16:32
#5
Интересующийся
 
Регистрация: 03.04.2017
Сообщений: 3
Благодарностей: 0
Как защитить WordPress сайт.

Статья полезная. Так же пользуюсь тем, что файл wp-config.php перемещаю на уровень выше. Тоесть рядом с папкой public_html. Wordpress сам находит этот файл.

Еще советуют отключать xmlrpc.php. Почитайте зачем он нужен. Я сам отключаю, но нужно иметь ввиду, что есть плагины, которые могут его использовать.
Evgeny17 вне форума
Старый 11.04.2017, 00:36
#6
Интересующийся
 
Имя: allweb
Пол: Мужской
Инвестирую в: SEO
Регистрация: 01.02.2013
Сообщений: 9
Благодарностей: 0
Как защитить WordPress сайт.

С ворд пресом постоянно проблемы все время его взламывают что только не пробовал для защиты и нашёл очень простую защиту
Удалил этот движок и все проблемы как рукой сняло
seodoski вне форума
Старый 13.06.2017, 02:40
#7
Интересующийся
 
Регистрация: 02.06.2017
Сообщений: 47
Благодарностей: 4
Как защитить WordPress сайт.

Цитата:
Сообщение от seodoski Посмотреть сообщение
С ворд пресом постоянно проблемы все время его взламывают что только не пробовал для защиты и нашёл очень простую защиту
Удалил этот движок и все проблемы как рукой сняло
А когда у вас Windows зависает, компьютер выкидываете и пользуйтесь калькулятором или же настраиваете, чтобы не зависало?

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

P.s К первому посту можно добавить, скрыть стандартный адрес входа в админку, и желательно ограничить доступ в админку по ip.
GdePost вне форума
Старый 16.07.2017, 20:01
#8
Интересующийся
 
Регистрация: 15.07.2017
Сообщений: 6
Благодарностей: 0
Re: Как защитить WordPress сайт.

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

Быстрый переход