Содержимое статьи
- А безопасен ли WordPress по умолчанию?
- Уязвимости в WordPress
- Безопасность WordPress сайта. Полное руководство 2020
- 1. Безопасный хостинг для сайта на WordPress
- 2. Используйте PHP 7.4+
- 3. Имена пользователей и их пароли
- 4. Всегда используйте последнюю версию ядра WordPress, плагинов и вашей темы
- 5. Защита панели администратора в WordPress
- 6. Воспользуйтесь преимуществами двухфакторной аутентификации
- 7. Использование HTTPS для зашифрованных соединений – SSL-сертификат
- 8. Защита файла wp-config.php
- 9. Отключение XML-RPC
- 10. Скрытие WordPress версии
- 11. HTTP заголовки безопасности
- 12. Использование плагинов для повышение безопасности WordPress сайта
- 13. Безопасность WordPress базы данных
- 14. Безопасное соединение с сервером
- 15. Файлы и права доступа к серверу
- 16. Отключение возможности редактирования файлов из панели администратора WordPress
- 17. Hotlinking
- 18. Резервное копирование
- 19. Защита от DDoS
- Заключение
Как только мы в первый раз задумываемся о защите WordPress сайта, мы еще не осознаем до конца о том, что существует много различных шагов, которые мы можем предпринять в качестве превентивных мер по защите сайта, интернет-магазина или просто блога.
Последнее, что вам нужно, это проснуться однажды утром и обнаружить сайт в руинах. Сегодня мы собираемся поделиться множеством советов, стратегий и методов, которые вы сможете применить и тем самым улучшить безопасность WordPress сайта, да и просто спокойно спасть.
А безопасен ли WordPress по умолчанию?
Первый вопрос, который вас наверняка интересует, безопасен ли сам посебе WordPress? В целом – Да. Тем не менее, владельцы WordPress сайтов часто сталкиваются со взломами, крашами и утечкой данных. Чаще всего это происходит из-за того, что пользователи продолжают следовать наихудшим методам обеспечения безопасности.
Использование устаревшего ядра WordPress, обнуленных (nulled) плагинов, не качественного системного администрирования, управления учетными данными и отсутствия необходимых знаний в Интернете и безопасности держат хакеров, так сказать, всегда в тонусе ?. Даже лидеры отрасли не всегда уделяют достаточно внимания, такой важной составляющей, как безопасность их WordPress сайта.
Сайт агенства «Reuters» был взломан, из за использования устаревшей версию ядра WordPress!
Это было в далёком 2012 году.
Согласно исследованию, проведенному компанией Sucuri за 2019 год, WordPress, как платформа, продолжает лидировать среди всех зараженных веб-сайтов, над которыми они работали (94%). А рост по сравнению с 2018 годом составил 4%. Ждем отчета за 2020, но принципиально картина не изменится.
WordPress, как CMS, используют более 35% всех веб-сайтов и неудивительно, что существует сотни тысяч комбинаций различных, как бесплатных, так и премиальных тем и плагинов и что уязвимости существуют и постоянно обнаруживаются.
Но к счастью, существует большое сообщество вокруг платформы WordPress, что гарантирует, что вновь обнаруженные уязвимости буду исправлены в кратчайшие сроки. По состоянию на 2020 год в состав WordPress команды по обеспечению безопасности вошли 50 экспертов, в том числе ведущие разработчики и исследователи в области цифровой защиты – около половины из них являются сотрудниками «Automattic».
Уязвимости в WordPress
Вот список из самых распространённых типов уязвимостей/методов, которыми пользуются злоумышленники нацеленные на WordPress:
- Backdoors.
- Pharma Hacks.
- Brute-force.
- Вредоносные перенаправления.
- Межсайтовый скриптинг (XSS).
- Отказ в обслуживании (DoS).
1. Backdoors
Backdoor (бэкдор) – уязвимость, которая предоставляет злоумышленникам скрытые проходы, обходящие протоколы безопасности для получения доступа к веб-сайтам на WordPress не стандартным методом – wp-admin, SFTP, FTP и так далее. Использования этой уязвимости позволяют хакерам нанести ущерб серверам хостинга с последующем «межсайтовым» заражением – компрометация нескольких сайтов, размещенных на одном сервере.
В четвёртом квартале 2019 года, «Sucuri» сообщили, что бэкдоры по-прежнему являются одним из самых, часто используемых действий, предпринимаемых злоумышленниками для взлома, при этом почти 47% зараженных сайтов имеют ту ил иную форму бэкдора.
Бэкдоры часто маскируются и выглядят как легитимные файлы WordPress ядра или темы/плагина, дают доступ, как к файловой системе, так и базе данных, используя слабые места и ошибки в устаревших (вовремя не обновлённых) версиях. Провал TimThumb (PHP скрипт, который часто используется авторами тем для работы с изображениями), более известный как «Уязвимость нулевого дня» был ярким тому примером. Бэкдор использовал скрытые скрипты и устаревшее ПО, которое скомпрометировало миллионы сайтов, в уже далёком, 2013 году.
Профилактика и лечение этого типа уязвимости довольна проста. Вы можете выполнить проверку вашего WordPress сайт с помощью SiteCheck, который легко обнаружит этот и другие бэкдоры.
Двухфакторная аутентификация, блокировка IP-адресов, ограничение доступа администратора и предотвращение несанкционированного выполнения файлов PHP легко устраняет распространенные бэкдор-угроз, о которых мы поговорим подробнее ниже.
2. Pharma Hacks
Эксплойт «Pharma Hack» используется, как метод для вставки вредоносного кода в устаревшие версии сайтов и плагинов для WordPress, а как следствие происходит подмена мета-тэгов. В SERP (результат выдачи поисковых систем) вместо вашего сайта, пользователи видят рекламу фармацевтических компаний. Уязвимость представляет собой скорее угрозу спама, чем традиционное вредоносное ПО, но дает поисковым системам достаточно оснований для блокировки сайта.
Движущий силой «Pharma Hack» являются бэкдоры в плагинах, темах и базах данных, которые можно очистить, следуя инструкциям из этого, старого, но полезного поста от Sucuri. Вы можете легко предупредить «Pharma Hacks», регулярно обновляя ядро, темы и плагины WordPress.
3. Brute-force
Brute-force – это, в первую очередь, попытка авторизации методом перебора. Используются скрипты перебирают пароли, а в случае успеха, злоумышленники получают доступ к вашему сайту. Ограничение кол-ва возможных попыток авторизации, двухэтапная аутентификация, логирование, использование белых и черных списков IP-адресов, а так же надежных паролей – являются одними из самых простых и высокоэффективных способов предотвращения такого рода атак.
Но, к сожалению, некоторые владельцы веб-сайтов WordPress не выполняют эти меры безопасности, тогда как хакеры легко могут скомпрометировать до 30 000 веб-сайтов за один день, используя атаки методом «Brute-force».
4. Перенаправление (Redirect)
Перенаправления создаются благодаря бэкдорам и внедряют код в файлы сайта. На зараженных субъектах, сценарии для перанаправления, часто расположены в файле .htaccess, но также часто можно встретить как в ядре WordPress, так и в файлах темы (например в index.php). Действуя скрытно и направляя ваш трафик на вредоносные или рекламные сайты. Мы расскажем о некоторых способах их предотвращения в наших шагах по защите WordPress ниже.
5. Межсайтовый скриптинг (XSS)
XSS – метод, при котором скрипт внедряется в тело веб-сайт или приложения. Обычно это JS-скрипты которые работают на стороне браузера конечного пользователя без его ведома и без ведома владельца сайта. Целью обычно является получение файлов cookie или данных сеанса или, возможно, даже перезапись HTML на странице.
6. Отказ в обслуживании (DoS)
Одна из самых опасных уязвимостей, которая вызывает отказа в обслуживании (Denial of Service или просто DoS) – использует ошибки в коде, просто сжырая оперативную память ОС на которой работает сайт. Миллионы сайтов, изо дня в день, подвергаются атакам, что вызывает полную остановку сервера. В широком кругу такой метод называют – DDos (Distributed Denial-of-Service).
Даже актуальные версии WordPress не могут всесторонне защитить от крупных DDoS-атак. Но, по крайней мере, помогут вам не попасть под перекрестный огонь финансовых учреждений и владельцем бот-нетов.
21 октября 2016 года – это был день, когда в Европе и Северной Америке интернет просто отключился из-за DNS DDoS-атаки. Если интересно и в качестве «ликбеза» можно подробнее прочитать про это значимое событие более известно как Кибератака на Dyn.
? Ничего себе предисловие получилось. Пора двигаться дальше и полностью погрузиться в безопасность WordPress.
Безопасность WordPress сайта. Полное руководство 2020
Согласно интернет-статистике, каждый день взламывается более 100 000 сайтов. Вот почему так важно уделить некоторое время и ознакомиться со следующими рекомендациями, приведенными ниже, о том, как лучше укрепить безопасность WordPress сайта.
Мы постараемся обновлять этот пост и актуализировать информацию, поскольку мир меняется, а WordPress не исключение.
Погружаемся ?
1. Безопасный хостинг для сайта на WordPress
Когда речь заходит про общую сетевую безопасность или, как в нашем случае, организацию защиты WordPress сайта важно понимать, что одним из ключевых факторов здесь является безопасность на уровне сервера.
Выбрав ту или иную хостинг-компанию, вы, в первую очередь, доверяете им свой бизнес. Однозначно, мелочиться тут не стоит и если есть фин. возможность выбрать «VPS», а не «Shared». Обычно у каждой хостинг-компании есть линейка, так называемых, «Shared» тарифов, купив который за 200-300 рублей в месяц, ваш сайт будет работать на одном сервере, вместе с десятком других сайтов. Уровень угрозы множится кратно!
Так же нужно обратить внимание на ОС и ПО-безопасности, которые предлагает компания.
2. Используйте PHP 7.4+
PHP – это основа любого сайта на WordPress. Трудно переоценить важность использования актуальной версии! Каждый основной релиз PHP полностью поддерживается разработчиками языка в течении следующих 2-х лет. Т.е есть гарантия, что в течении этого срока все ошибки будут исправлены. На данный момент все, кто работает с версией PHP 7.1 или ниже, больше не имеют поддержки в плане безопасности WordPress и подвержены угрозе.
И угадайте, что? Согласно официальной статистики WordPress и на момент написания этой статьи, более 24% WordPress сайтов используют PHP версии 5.6 и ниже, а количество пользователей которые используют PHP 7.2, которая активно не поддерживается (безопасность будет поддерживаться до 1 декабря 2020 года) и ниже составляет более 67%. Это страшно!
Более 67% WordPress сайтов работают на устаревшие версию PHP! ?
Да, разработчикам и компаниям требуется какое то время для отладки и обеспечения полной совместимости актуальной PHP версий с их кодом, но нет ни каких оправдания для запуска чего-либо без поддержки в плане безопасности. Не говоря уже об огромном влиянии на производительность, которое оказывают старые версии.
Не знаете, на какой версии PHP работает ваш сайт? Быстрый способ проверить это – Pingdom. Проверка начнется сразу после того как вы введете URL в строку поиска. По-завершении прокрутите вниз до блока «File requests». Нажмите на первый запрос и найдите параметр «X-Powered-By». Обычно это покажет версию PHP, которую использует ваш веб-сервер. Однако некоторые хостинг-компании удаляют этот заголовок по соображениям безопасности.
Обязательно обновите PHP на вашем сервере до версии 7.4+ как можно скорее!
3. Имена пользователей и их пароли
Один из лучших и самых простых способов укрепить защиту вашего WordPress сайта – это использовать не стандартный подход к выбору логина и пароля. Посмотрите ежегодный список самых популярных паролей года. Вот в далёком 2014 году «Лаборатория Касперского» опубликовала список из 25 худших паролей. Вот топ 5:
- 123456
- password
- 12345
- 12345678
- qwerty
Офигеть! ? Самый популярный пароль – «123456», за которым следует удивительный «pasword».
А сейчас что? Вот данные 2020 года в материалах газета.ru и как видно особых изменений нет!
Основная функция WordPress wp_hash_password использует хеширования на основе MD5. Некоторые из лучших мер безопасности начинаются с основ. У Google есть несколько отличных рекомендаций по созданию надежного пароля.
Также важно использовать разные пароли для каждого сайта. Лучший способ их хранения – локально в зашифрованной БД на вашем компьютере. Даже если ваши данные надежно хранятся в облаке, они обычно более безопасны, поскольку вы не используете один и тот же пароль на нескольких сайтах. Это также убережет вас от стикеров на углах монитора. ?
А если говорить про WordPress, то самое плохое, что можно сделать – это использовать логин «admin» для авторизации. Если у вас так и есть то срочно примите меры. Создайте нового пользователя нажав на ссылку «Добавить нового» в меню «Пользователи» и установив ему роль «Администратор»!
Логин, так же можно сменить используя phpMyAdmin, но обязательно сделайте резервную копию вашей БД перед началом.
UPDATE wp_users SET user_login = 'UserThatCanDoThings' WHERE user_login = 'admin';
4. Всегда используйте последнюю версию ядра WordPress, плагинов и вашей темы
Еще один способ укрепить защиту вашего WordPress сайта – постоянно обновлять его. Это включает в себя ядро WordPress, плагины и темы (как из репозитория WordPress, так и премиум). Авторы обновляют свои детища не просто так, на всё есть причина. Часто обновления идут рука об руку с исправлением ошибок и улучшениями в плане общей безопасности.
К сожалению, миллионы компаний используют устаревшие версии плагинов, тем и ядра WordPress и все еще верят, что они на правильном пути к успеху. Они приводят причины отказа от обновления, такие как «их сайт сломается» или «модификации пропадут» или «плагин X не будет работать» или им якобы « не нужны новые функции».
А Фактически, сайты ломают в основном из-за ошибок в старых версиях WordPress. Модификация ядра WordPress изначально не рекомендуются командой WordPress и опытными разработчиками, которые понимают связанные с этим риски. А обновления WordPress в основном включают обязательные патчи безопасности и дополнительные функции, необходимые для запуска последних версий плагинов.
Знаете ли вы, что уязвимости в плагинах представляют это более 60% точек входа для хакеров? Обновляя свои плагины, вы можете лучше убедиться, что вы не одна из этих жертв. Если вы новичок, то советуем прочитать нашу инструкцию по работе с плагинами – конечно это базовые знания, но а вдруг?
5. Защита панели администратора в WordPress
Часто, безопасность в WordPress, как стратегия «скрытности» подходит как для интернет-магазина, так и для обычного сайта или блога. Если хакерам будет сложнее найти определенные бэкдоры, то у вас меньше шансов на атаку. Блокировка вашей админ-панели WordPress для входа в стистему – это хороший способ повысить вашу безопасность.
Стратегия «скрытности» – простой и эффективный способом повысить безопасность WordPress. ?
Два способа сделать это – изменить URL-адрес входа в wp-admin по умолчанию, а потом ограничить количество возможных попыток входа.
Как изменить URL для входа в панель администратора WordPress
Если ни кто не лазил в код вашего сайта, то URL для авторизации выглядит так – domain.ru/wp-admin. Проблем состоит в том, что все знают об этом. Изменяя URL-адрес, вы можете сделать себя менее привлекательной мишенью и лучше защитить себя от атак методом «Brute-force». Это не решение всех проблем, это просто один маленький трюк, который определенно может помочь защитить вас.
Чтобы изменить URL-адрес входа в WordPress, мы рекомендуем использовать бесплатный плагин WPS Hide login. Плагин добаляет простое поле ввода нового URL. Просто не забудьте выбрать что-то уникальное, чего еще не будет в списке, который бот или скрипт может попытаться просканировать.
Как ограничить количество возможных попыток авторизации
Хотя приведенное выше решение по изменению URL-адреса входа для администратора может помочь уменьшить большинство несанкционированных попыток входа в систему, ограничение количеству может также оказаться очень эффективным. Бесплатный плагин Cerber Limit Login Attempts – это отличный способ легко настроить продолжительность блокировки, попытки входа в систему, а также белые и черные списки IP-адресов.
Если вы ищете более элегантное решение для безопасности вашего WordPress сайта, то обратите внимание на плагин Login Lockdown и он совместим с WPS Hide, о котором мы писали ранее.
Базовая HTTP аутентификация (htpasswd)
Еще один способ защиты входа в админку – это добавить HTTP-аутентификацию. Потребуется авторизоваться, прежде чем вы сможете получить доступ к стандартной странице входа в панель WordPress. Т.е. получается, что авторизоваться нужно будет дважды.
Этот метод не должен использоваться на интерент-магазинах или сайтах на которых организованы платные подписки. Но это может быть очень эффективным способом противодействия злоумышленникам.
Apache
На серверах с установленной панелью cPanel можно включить такой, дополнительный метод аутентификации через саму панель. А для ручной настройки необходимо создать файл .htpasswd и положить его в папку /wp-admin/
home/user/.htpasswds/public_html/wp-admin/htpasswd/
Потом, нужно будет создать или отредактировать файл .htaccess, добавив в него строки, которые вы видите ниже и также положить его в /wp-admin/. Убедитесь, что вы обновили путь к каталогу и «username» – имя пользователя.
AuthName "Admins Only" AuthUserFile /home/somefolder/.htpasswds/public_html/wp-admin/htpasswd AuthType basic require user username
Важно всё сделать правильно, в противном случае поломается AJAX (admin-ajax) на внешнем интерфейсе вашего сайта. Если что-то пошло не так, то добавляем код, который вы видите ниже, в .htaccess.
<Files admin-ajax.php> Order allow,deny Allow from all Satisfy any </Files>
Nginx
На серверах Nginx, так же можно добавить базовой HTTP-аутентификации. Для этого просто следуйте официальному руководству, правда знания Английского языка тут будут не лишними ?
6. Воспользуйтесь преимуществами двухфакторной аутентификации
Независимо от того, насколько надежен ваш пароль, всегда есть риск, что кто-то его обнаружит. Двухфакторная аутентификация – это своего рода двухэтапный процесс, при котором вам потребуется не только связка логин/пароль, но и что-то дополнительное. Обычно это SMS, телефонный звонок или одноразовый пароль на основе времени (TOTP). В большинстве случаев это на 100% эффективно для предотвращения атак методом перебора на ваш сайт WordPress потому, что почти невозможно, чтобы у злоумышленника был и ваш пароль, и ваш смартфон одновременно.
Что касается плагинов двухфакторной авторизации для WordPress, то их достаточно много, но один самых простых и понятных – 2FAS Light – Google Authenticator. Достаточно установить приложение от Google для смартфонов на Andriod или на iOS, и следуя простейшей инструкции в плагине – отсканировать QR-код и подтвердить авторизацию. Всё, теперь даже если ваш пароль пойдет в свободное плавление, злоумышленникам потребуется доступ к смартфону чтобы авторизоваться на сайте.
Этот метод можно легко комбинировать со всеми, выше перечисленными, методами. Так что не только URL самой авторизации в панель WordPress является чем-то, что известно только вам, но теперь для входа требуется дополнительная аутентификация. ?
7. Использование HTTPS для зашифрованных соединений – SSL-сертификат
Пожалуй, одним из самых недооцененных методов повысить защиту сайта на WordPress является установка SSL-сертификата и запуск сайта по HTTPS. HTTPS (Hyper Text Transfer Protocol Secure) – это протокол, который позволяет вашему браузеру или веб-приложению безопасно подключаться к веб-сайту.
Давайте объясним несколько причин, почему HTTPS важен не только для сферы электронной коммерции.
1. Безопасность
Конечно, главной причиной для использования HTTPS является дополнительная безопасность, и да, это в первую очередь касается интернет-магазинов. Но подумайте, насколько сильно вы цените частную информацию ваших пользователей? При регистрации или авторизации на сайтах с HTTP все персональные данные передаются на сервер в виде простого текстового сообщения. HTTPS абсолютно необходим для поддержания безопасного соединения между веб-сайтом и браузером. Таким образом, вы сможете предотвратить доступ к персональным данным пользователей вашего веб-сайта хакеров или их посредников.
Итак, есть ли у вас блог, новостной сайт, агентство и т.д., вы всегда можете извлечь выгоду из HTTPS, поскольку это гарантирует, что ничто и никогда не передается в виде простого текста.
2. SEO
Google, еще в 2014 году, официально заявил, что HTTPS является фактором ранжирования. Хотя это всего лишь небольшой фактор ранжирования, большинство из вас, вероятно, воспользуются любым преимуществом, которое вы можете получить в результатах поисковой выдачи, чтобы обыграть своих конкурентов. C Яндексом дела обставят так же.
3. Доверие
Согласно опросу GlobalSign, около 77% пользователей обеспокоены тем, что их данные могут быть перехвачены или неправильно использованы в Интернете. Увидев замочек в строке браузера, клиенты сразу чувствуют себя спокойнее, зная, что их данные более защищены.
4. Реферальные данные
Многие люди не понимают, что реферальные данные HTTPS на HTTP заблокированы в Google Analytics. Так что же происходит с данными? Ну, большинство из них просто смешаны с разделом «прямой трафик». Если кто-то переходит с HTTP на HTTPS, реферер по-прежнему передается.
5. Предупреждения в браузерах
С июля 2018 года браузер Google Chrome версии 68 и выше начал помечать все сайты без HTTPS как «Незащищенные». Независимо от того, собирают они данные или нет. Вот с тех пол HTTPS стал важнее, чем когда-либо!
Google делает понятным для посетителей, что ваш сайт WordPress может не работать по защищенному соединению.
В след за Google этому примеру последовали и другие браузеры, в качеств примера, вот таким значком
6. Производительность
Из-за протокола HTTP/2, часто те, кто работает с должным образом оптимизированными сайтами по HTTPS, могут даже увидеть улучшения скорости. HTTP/2 требует HTTPS. Повышение производительности происходит из-за множества причин, так например HTTP/2, способен поддерживать лучшее мультиплексирование, параллелизм, сжатие HPACK с кодированием Хаффмана, расширение ALPN.
А с TLS 1.3 HTTPS-соединения становятся еще быстрее.
Инструкцию по установке, равно как и сам SSL-сертификат, можно получить у вашего хостинг-провайдера, а после того как все установлено нужно будет добавить следующий код в wp-config.php:
define('FORCE_SSL_ADMIN', true);
8. Защита файла wp-config.php
wp-config.php – это сердце и душа WordPress, а также, самый важный файл на вашем сайте, когда речь идет о безопасности WordPress. Он содержит информацию для входа в БД и, так наказываемые, ключи безопасности, которые обеспечивают шифрование в файлах cookie.
1. Перемещение wp-config.php
После установки, файл wp-config.php хранится в корневой папке. Но его можно переместить в каталог, который будет структурно выше каталога www.
Для этого, скопируйте содержимое файла wp-config.php в новый файл. Затем в wp-config.php нужно будет подключить ваш новый файл:.
<?php include('/home/somefolder/onemorefolder/wp-config.php');
2. Обновление ключей безопасности WordPress
КБ в WordPress – это как шифр, набор различных, случайно сгенерированных, символов которые используются при шифровании пользовательских cookie-файлах.
Когда вы устанавливаете WordPress, ключи генерируются автоматически. Однако, иногда их стоит обновлять.
На официальном сайте есть бесплатный инструмент, с помощью которого можно создать новые КБ и заменить их в файле wp-config.php.
3. Права доступа
Обычно для файлов в корневом каталоге сайта WordPress устанавливается значение прав 644, что означает, что файлы доступны для чтения и записи для владельца файла и для чтения пользователями в группе, владеющей этим файлом, и для чтения всеми остальными. Согласно документации WordPress, разрешения для файла wp-config.php должны быть установлены 440 или 400, чтобы другие пользователи на сервере не могли его прочитать. Вы можете легко изменить права, используя FTP-клиент, ISP Manger или cPanel (зависит от типа вашего хостинга).
На некоторых хостинг-платформах разрешения могут отличаться, поскольку у пользователя, работающего с веб-сервером, нет прав на запись файлов. Если вы не уверены в этом, обратитесь к вашему хостинг-провайдеру.
9. Отключение XML-RPC
В последние годы XML-RPC становится все более часто целью для атак методом перебора (Brute-force). Одна из скрытых возможностей XML-RPC заключается в том, что вы можете использовать метод system.multicall для выполнения нескольких процедур внутри одного запроса. Это очень полезно, поскольку позволяет приложению передавать несколько команд в одном HTTP-запросе. Но так же, именно это особенность и используется злоумышленниками.
Существует несколько плагинов WordPress, таких как Jetpack, которые используют XML-RPC, но большинству людей это не нужно, и может быть полезно просто отключить доступ к нему.
Не уверены, работает ли XML-RPC на вашем сайте? Воспользуйтесь бесплатных инструментом XML-RPC Validator от «Automattic».
Чтобы полностью отключить XML-RPC, вы можете воспользоваться плагинами из официального репозитория. Стоит отметить, что большинство плагинов для оптимизации производительности так же включают возможность отключения XML-RPC в своих бесплатных версиях. У нас есть отдельная статья про историю xmlrpc.php в WordPress и как отключить этот протокол.
10. Скрытие WordPress версии
Скрытие версии WordPress вашего сайта так же затрагивает тему безопасности WordPress. Чем меньше других людей узнают о конфигурации вашего сайта, тем лучше. Если они увидят, что вы используете устаревшую версию, то это может быть отличным сигналом для злоумышленников. По умолчанию версия WordPress отображается в заголовке исходного кода вашего сайта.
<meta name="generator" content="WordPress 5.4.2" />
Опять же, мы рекомендуем всегда обновлять ядро WordPress до актуальной версии.
Вы можете использовать следующий код, чтобы скрыть версию вашего WordPress. Просто добавьте его в файл functions.php вашей WordPress темы:
function wp_version_remove_version() { return ''; } add_filter('the_generator', 'wp_version_remove_version');
Внимание!
Редактирование исходного кода темы WordPress может привести к поломке сайта, если это сделано неправильно. Обратитесь к разработчикам если вы сомневаетесь в своих силах!
11. HTTP заголовки безопасности
Еще один шаг, который вы можете предпринять, чтобы укрепить безопасность WordPress – воспользоваться преимуществами заголовков безопасности HTTP. Они обычно настраиваются на уровне веб-сервера и сообщают браузеру, как вести себя при работе с контентом вашего сайта. Существует множество различных заголовков безопасности HTTP, но ниже приведены наиболее важные из них:
- Content-Security Policy
- X-XSS-Protection
- Strict-Transport-Security
- X-Frame-Options
- Public-Key-Pins
- X-Content-Type
Вы можете проверить, какие заголовки в настоящее время работают на вашем сайте WordPress, запустив инспектор в Chrome браузере и посмотрев «Headers» во вкладке «Network» в первоначальном ответе вашего сайта.
Вы также можете просканировать веб-сайт с помощью бесплатного инструмента securityheaders.io. Вы всегда можете спросить своего хоста, могут ли они вам помочь с заголовками.
12. Использование плагинов для повышение безопасности WordPress сайта
Конечно мы должны упомянуть некоторые плагины безопасности WordPress. Есть много отличных разработчиков и компаний, которые предлагают отличные решения, которые помогут лучше защитить ваш сайт WordPress.
Вот некоторые типичные функции которые входят в плагины перечисленные выше:
- Генерация и применение надежных паролей при создании профилей пользователей.
- Принудительное истечение срока действия паролей и их регулярный сброс.
- Регистрация действий пользователя.
- Обновления ключей безопасности WordPress.
- Сканирование на предмет наличия вредоносных программ.
- Двухфакторная аутентификация.
- reCAPTCHA
- Брандмауэры безопасности WordPress.
- Белый и черный списки IP.
- Журнализация изменений (Сhangelog).
- Отслеживать изменения DNS.
- Блокировать вредоносные сети.
- Просмотр WHOIS информации о посетителях.
Очень важная особенность – многие плагины безопасности включают утилиту контрольной суммы. Это означает, что они проверяют вашу установку WordPress и ищут изменения в основных файлах, предоставленных WordPress.org (через API). Любые изменения или модификации этих файлов могут указывать на взлом. Вы также можете использовать WP-CLI для создания своей собственной контрольной суммы.
13. Безопасность WordPress базы данных
Есть несколько способов повысить безопасность вашей базы данных WordPress. Первый заключается в использовании умного имени базы данных. Изменение имени базы данных на более неясное помогает защитить ваш сайт, затрудняя хакерам идентификацию и доступ к деталям вашей базы данных.
Вторая рекомендация – использовать префикс таблицы базы данных, отличный от того, который WordPress рекомендует по умолчанию. По умолчанию WordPress использует wp_. Изменение префикса на что-то вроде m09_xp_ поможет значительно обезопасить WordPress БД.
14. Безопасное соединение с сервером
Убедитесь, что ваш хост принимает меры предосторожности, такие как SFTP или SSH. SFTP или защищенный протокол передачи файлов (также известный как протокол передачи файлов SSH) – это сетевой протокол, используемый для передачи файлов. Это более безопасный метод по сравнению со стандартным FTP.
Также важно убедиться, что ваш домашний маршрутизатор настроен правильно. Если кто-то взломает вашу домашнюю сеть, он может получить доступ ко всем видам информации, в том числе, возможно, где хранится ваша важная информация о ваших сайтах WordPress. Вот несколько простых советов:
- Не включайте удаленное управление (VPN). Обычные пользователи никогда не используют эту функцию, и, отключив ее, вы сможете не подвергать свою сеть воздействию внешнего мира.
- Маршрутизаторы по умолчанию используют IP-адреса в диапазоне, таком как 192.168.1.1. Используйте другой диапазон, например 11.5.3.8.
- Включите самый высокий уровень шифрования на вашем Wi-Fi.
- Используйте белый список IP для Wi-Fi, так что только люди с паролем и определенным IP-адресом могут получить к доступ к вашей сети.
- Постоянно обновляйте прошивку на своем роутере.
И всегда будьте осторожны при входе на ваш сайт WordPress в публичных местах. Примите меры предосторожности, такие как проверка SSID сети перед нажатием кнопки «Подключиться». Вы также можете использовать стороннюю службу VPN для шифрования вашего интернет-трафика и скрытия вашего IP-адреса от хакеров.
15. Файлы и права доступа к серверу
Права доступа к файлам имеют решающее значение для повышения WordPress безопасности. Если ограничения слишком слабые, кто-то может легко получить доступ к вашему сайту и нанести ущерб. С другой стороны, если ваши ограничения слишком строгие, это может нарушить функциональность вашего сайта. Поэтому важно иметь правильные настройки.
1. Права доступа к файлам и директориям
- Права на чтение (Read) назначаются, если у пользователя есть права на чтение файла или просмотр содержимого директории.
- Права на запись (Write) назначаются, если у пользователя есть права на запись или изменение отдельного файла или на запись и удаление чего либо в конечной директории.
- Разрешения на выполнение (Execute) назначаются, если у пользователя есть права на запуск файла и / или выполнение его в виде сценария.
Вот несколько типичных рекомендаций для прав доступа к файлам и папкам в WordPress:
Все файлы должны быть с правами 644 или 640. Исключение: wp-config.php должен быть 440 или 400, чтобы другие пользователи на сервере не могли его прочитать. Все каталоги должны обладать правами 755 или 750. Не нужно давать права 777, даже для директории /uploads/.
16. Отключение возможности редактирования файлов из панели администратора WordPress
У многих сайтов на WordPress несколько пользователей и администраторов одновременно, что может усложнить безопасность WordPress. Плохая практика – предоставлять авторам или редакторам доступ администратора, но, к сожалению, это происходит постоянно. Важно дать пользователям правильные роли, чтобы они ничего не нарушали. По-этому может быть полезно просто отключить «Редактор тем» в WordPress.
Большинство из вас, вероятно, пользовались редактором. Вы идете, чтобы быстро отредактировать что-то в редакторе внешнего вида, и вдруг у вас остается белый экран смерти. Гораздо лучше отредактировать файл локально и загрузить его через FTP. И, конечно же, в наилучшей практике вы должны сначала тестировать подобные вещи на сайте разработки.
Кроме того, если ваш сайт скомпрометирован, самое первое, что могут сделать злоумышленники – это попытаться отредактировать PHP-файлы или тему с помощью этого редактора. Для них это быстрый способ внедрить вредоносный код. Поместите следующий код в свой файл wp-config.php, чтобы возможность Front-End редактирования файлов:
define('DISALLOW_FILE_EDIT', true);
17. Hotlinking
Концепция хотлинкинга очень проста. Вы где-то находите изображение в Интернете и используете URL-адрес изображения прямо на своем сайте. Да, это изображение будет отображаться на вашем сайте, но оно будет загружаться напрямую с источника. По большому счету это расценивается как кража, так как отображение этой картинки на вашем сайте использует пропускную способность сайта донора. Это может показаться не таким уж большим делом, но это может привести к большим дополнительным расходам.
Ну а что касается безопасности вашего WordPress сайта – просто знайте, что если сегодня файл с расширением *.JPG, сегодня, действительно таковым является, то не факт, что завтра в него не зашьют вредоносный код. Так же может быть обратная ситуация когда *.PHP файл, сегодня показывает картинку, а завтра исполняет другой PHP код у вас на сайте.
1. Отключение возможности Hotlinking на серверах Apache
Для предотвращения хотлинкинга в Apache просто добавьте следующий код в ваш файл .htaccess.
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.ru [NC] RewriteRule \.(jpg|jpeg|png|gif)$ http://dropbox.com/placeholder.jpg [NC,R,L]
где, domain.ru – имя вашего домена, а placeholder.jpg – изображение которое будет выводиться по умолчанию вместо вставленных извне.
2. Отключение на NGINX серверах
Чтобы предотвратить хотлинкинг на NGINX, просто добавьте следующий код в ваш файл конфигурации.
location ~ .(gif|png|jpe?g)$ { valid_referers none blocked ~.google. ~.bing. ~.yahoo domain.ru *.domain.ru; if ($invalid_referer) { return 403; } }
18. Резервное копирование
Резервные копии – это то, что всем нужно делать в обязательном порядке. Большинство из приведенных выше рекомендаций являются мерами безопасности, которые вы можете предпринять, чтобы лучше защитить себя. Но независимо от того, насколько безопасен ваш сайт, он всё же может быть взломан, ну или просто сломаться.
Таким образом, создавайте и храните резервные копии на случай, если случится худшее. В рамках этого гайда мы не будет описывать процесс более развернуто, так как резервное копирование в WordPress достойно отдельной темы. Стоит лишь отметить, что создание бэкапов – это не мера борьбы со злоумышленниками, а мера безопасности в плане устранения последствий??
19. Защита от DDoS
DDoS – это тип атаки DOS, когда несколько систем используются для нацеливания на одну, вызывая атаку типа «отказ в обслуживании». DDoS-атаки не являются чем-то новым – первый документированный случай относится к началу 2000 года. В отличие от тех, кто взламывает ваш сайт, эти типы атак обычно не наносит вреда вашему сайту, а просто «гасит» его на несколько часов или дней.
Что вы можете сделать, чтобы защитить себя? Одна из лучших рекомендаций – использовать авторитетную стороннюю службу безопасности, такую как Cloudflare или Sucuri. Если вы управляете бизнесом, имеет смысл инвестировать в их премиальные планы.
Продвинутая защита от DDoS-атак может быть использована для смягчения атак DDoS всех форм и размеров, включая те, которые нацелены на протоколы UDP и ICMP, а также SYN/ACK.
Заключение
Как видите, существует множество способов повысить безопасность WordPress. Использование умных паролей, поддержание актуальности ядра и плагинов, а также выбор надежного хостинга – вот лишь некоторые из них, которые обеспечат безопасную работу вашего сайта на WordPress. Для многих из вас ваш сайт WordPress – это и ваш бизнес, и доход, поэтому важно потратить некоторое время и внедрить некоторые из рекомендаций по безопасности, упомянутых выше, раньше, чем позже.
Если у вас есть вопросы или просто хотите поделиться своим мнением, то оставляйте комментарии. Мира и спокойствия вашему сайте ✌️
Спасибо.
6 комментариев
Спасибо. Все гораздо проще. Пользуюсь плагином WP Cerber Security очень давно, он развивается, добавляются новые функции. Из протестированных мной этот лучший по многим факторам, в том числе по скорости сайта. Тем самым все что вы написали уже не нужно, один плагин все решает.
При правильном подходе ни какие плагины не нужны 🙂
Приветствую!
Огромное спасибо за мануальчик!) Сразу видно, человек в теме)
Wordpress никогда не пользовал, вот жене блог для работы понадобился.
Я по поводу блокировки и скрытия админки. У меня в PHPBB я делаю просто файл .htacess в каталоге adm c содержимым:
#Запрещаем доступ для всех, кроме указанных IP-адресов
ErrorDocument 403 https://мой сайт
Order deny,allow
Deny from all
Allow from 1xx.1xx.xx.xx
IP можно указывать несколько, вход только по указанным…ну или диапазон минимальный от провайдера своего.
В wordpress такое не сработает?
Просто на данный момент делаю блог на локальном, не могу проверить.
Проверили?
Так я спрашивал? Такой метод подходит? ))
Из протестированных вами? А вы какой-то эксперт в безопасности сайтов, чтобы уметь тестировать плагины безопасности для WordPress в разных вариациях и при разных условиях? Влияние на скорость сайта? – а вы умеете измерять это? Проводили сравнительное тестирование популярных плагинов безопасности на высоконагруженных WordPress-сайтах?
Сдаётся мне, что вы просто сайтошлеп среднего помёта, который делает сайты на фрилансе или вообще для себя и просто хвалите WP Cerber Security потому что нашли для себя его каким-то особенным – но это никакого отношения к действительности и тем более общим рекомендациям не имеет.
Выше автор(ы) написали хотя бы как-то более менее адекватную статью, а ваш комментарий лишь отражает вашу недокомпетентность…