Безопасность WordPress — советы и рекомендации. Качественная настройка блога на WordPress после установки Что нужно сделать после установки wp

  • Перевод

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

Эта статья сфокусирована на вопросах усиления безопасности WordPress - как административной панели, так и настроек блога, подразумевая все содержимое папки «wp-admin» , которое отображается только после авторизации . Мы сознательно выделили фразу "после авторизации " - вы должны четко осознавать, что только один простой запрос отделяет «злого хакера» и админку всего вашего блога или сайта! А последняя защищена настолько сильно, насколько мощный пароль вы выбрали.

Чтобы в разы усложнить задачу взломщиков, мы предлагаем набор операций, которые вы можете выполнить вручную. Эти решения не гарантируют 100% защиту, но с их помощью вы заметно улучшите безопасность вашего блога.

1. Переименуйте папку wordpress.

Начиная с версии 2.6, стало возможным изменять путь к папке wp-content . К сожалению это до сих пор неприменимо к папке wp-admin . Думающие о безопасности блоггеры смирились с этим и стали надеяться, что это станет возможным в будущих версиях. Пока этого не случилось, предлагаем воспользоваться следующим альтернативным решением проблемы. После распаковки архива с файлами WordPress, вы увидите папку «WordPress» - переименуйте папку (в идеале во что-то непонятное вроде " wordpress_live_Ts6K" ) и после этого настройте соответственным образом файл wp-config.php , который находится в корневой директории.
Что нам даст это изменение?
  • Во-первых, все файлы WordPress не будут смешаны с другими файлами в корне сайта, таким образом мы повысим ясность корневого уровня.
  • Во-вторых, множество копий WordPress может быть установлено параллельно в папки с разными именами, исключая их взаимодействие, что делает это идеальным для тестирования
  • Третье преимущество напрямую касается безопасности: административная зона (и весь блог в целом) больше не находится в корневой папке и для проведения каких-либо действий по взлому сначала ее нужно будет найти. Это проблемно для людей, но что касается ботов - вопрос времени.

Несколько установленных версий в root-каталоге - это возможно!

Примечание: Если системные файлы WordPress больше не в корневой директории, и имя папки инсталяции изменено в соответствии с рекомендациями, описанными выше, блог будет все равно доступен по адресу wp-config.ru . Почему? Зайдите в раздел «Общие настройки (General settings)» вашего блога и введите в поле «WordPress address (URL)» реальный адрес блога на сервере, как показано в примере:

Адрес блога должен быть красивым и ненавязчивым

Это позволит блогу отображаться по красивому виртуальному адресу.

2. Усовершенствуйте файл wp-config.php

Конфигурационный файл WordPress wp-config.php содержит в себе некоторые настройки сайта и информацию для доступа к базе данных. Также там другие настройки, касающиеся безопасности (они представлены в списке ниже). Если таких значений в этом файле нет, или же имеются только установленные по умолчанию, вам необходимо, соответственно, добавить или изменить их:
  • Ключи безопасности: начиная с версии 2.7, в WordPress есть четыре ключа безопасности, которые должны быть правильно установлены. WordPress спасает вас от необходимости выдумывать эти строки самому, автоматически генерируя правильные ключи с точки зрения безопасности. Вам просто нужно вставить ключи в соответствующие строки файла wp-config.php. Эти ключи являются обязательными для обеспечения безопасности вашего блога.
  • Префикс таблицы заново установленного WordPress блога не должен быть стандартным «wp_» Чем больее сложным будет значение префикса, тем менее вероятна возможность несанкционированного доступа к таблицам вашей MySQL базы данных. Плохо: $table_prefix = "wp_"; . Намного лучше: $table_prefix = "wp4FZ52Y_"; Не стоит бояться забыть это значение - вам необходимо ввести его только один раз, больше оно вам не понадобится.
  • Если у вас на сервере доступно SSL шифрование , рекомендуется включить его для защиты административной зоны. Это можно сделать, добавив следующую команду в файл wp-config.php: define("FORCE_SSL_ADMIN", true);
Также вы можете регулировать другие системные настройки в конфигурационном файле. Четкий и исчерпывающий список доступных настроек доступен на странице Кодекса

Не пренебрегайте установкой правильных ключей безопасности!

3. Переместите файл wp-config.php

Также начиная с версии 2.6, WordPress позволяет перемещать файл wp-config.php на высший уровень. По причине того, что этот файл содержит в себе намного более важную информацию, чем какой либо другой, и потому что всегда намного сложнее получить доступ к корневой папке сервера, имеет смысл хранить его не в той же директории, где и остальные файлы. WortdPress автоматически обратится к высшей папке в поиске файла wp-config.php . Любые попытки пользователей самим настроить путь бесполезны.

4. Защитите файл wp-config.php

Не все ISP серверы позволят вам передавать данные на более высокие уровни, чем корневая директория. Другими словами, не у всех хватит прав для осуществления предыдущего шага. Или по другим причинам: например, если у вас несколько блогов, при определенной структуре папок у вас не получится положить в корень все файлы, так как их имена будут совпадать для каждого из блогов. В этом случае мы можем запретить доступ к файлу wp-config.php извне при помощи файла .htaccess . Вот код для этого:

# protect wpconfig.php
Order deny,allow deny from all

Очень важно убедиться, что файл .htaccess находится в той же директории что и файл wp-config.php .

5. Удалите учетную запись администратора.

Во время процесса установки WordPress создает учетную запись администратора с ником «admin» по умолчанию. С одной стороны это вполне логично, с другой - пользователь с известным ником, т.е. ID - 1, обладающий административными правами, является вполне предсказуемой мишенью для хакеров с их программами подбора паролей. Отсюда следует наш совет:
  • Создайте еще одного пользователя с административными правами и вашим ником.
  • Завершите сеанс работы.
  • Залогиньтесь под новым аккаунтом.
  • Удалите учетную запись "admin ".
Если у вас не новый блог и под учетной записью admin вы уже публиковали посты или комментарии, то из предложенных вариантов в момент удаления, выберите пункт «Связать все записи и ссылки с:» и выберите имя нового пользователя:

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

6. Выберите сильный пароль.

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

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

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

7. Защитите папку «wp-admin».

Следуя пословице «две головы лучше одной», существует способ вдвое усилить защиту административной зоны. Защита регулируется файлом .htaccess , который должен находится в папке «wp-admin» вместе с файлом .htpasswd , который хранит логин и пароль пользователя. После обращения к папке, вам нужно будет ввести логин и пароль, но разница в том, что в этом случае авторизация контролируется на стороне сервера, а не силами самого WordPress.

Для того чтобы просто и быстро сгенерировать файлы .htaccess и .htpasswd , воспользуйтесь этим сервисом .

8. Запретите отображение ошибок на странице авторизации.

Страница авторизации WordPress - это дверь в административную зону вашего блога, которая становится доступна после безошибочного прохождения верификации. У каждого пользователя существует бесконечное количество попыток авторизации, и каждый раз по умолчанию услужливый WordPress указывает, в чем именно была ошибка. То есть, если введенный логин окажется неверным - WordPress так и скажет. Это удобно для пользователя, но также и для хакера.

Несложно догадаться, как быстро сокращается вероятность подбора комбинации логина/пароля, когда система указывает что именно введено неверно. Простая строка кода, поможет решить эту проблему, достаточно добавить её в файл functions.php вашей темы:

Add_filter("login_errors",create_function("$a", «return null;»));

Изначальный/измененный вид страницы авторизации.

9. Ограничьте количество неудачных попыток авторизации.

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

Сергей Арсентьев

Безопасность WordPress в 2 клика с помощью All In One WP Security

Безопасности в WordPress уделяется немало внимания, и все равно бывают случаи взломов сайта. Однако можно воспользоваться специальным плагином и значительно увеличить защиту вашего сайта, тем более что сделать это можно буквально в 2 клика.

Зачем вообще нужно повышать безопасность WordPress?
Конечно, чтобы избежать взломов и несанкционированного использования пространства сайта.

Но неужели это так плохо? Ну и пусть ломают - у меня все равно брать нечего!

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


Редкий смельчак отважится все-таки перейти на заразный сайт, поэтому трафик из поисковых систем взломанных сайтов падает в разы. А вместе с посещаемостью доходы владельцев сайтов также стремительно снижаются.

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

Я устанавливал на сайты разные плагины для повышения безопасности WordPress (они еще часто называются firewall), но порекомендую вам тот, который лично я считаю самым лучшим по большинству параметров, это - All In One WP Security .

Его основные преимущества:

  • бесплатный
  • удобный русскоязычный интерфейс
  • множество вариантов защиты
  • частое обновление
  • мгновенный импорт и экспорт настроек

Инсталлируется он как обычный плагин Вордпресс (если не знаете как это сделать, то читайте " "). Так что с установкой у вас проблем возникнуть не должно.

Но затем еще нужно будет настроить All In One WP Security, то есть выбрать и активировать параметры защиты. Их много, включать стоит далеко не все, иначе сайт может просто оказаться неработоспособным. Так какие параметры нужно выбрать обязательно, а какими стоит пренебречь?

Ниже в статье я дам ссылку на файл импорта лично моих настроек, которые я использую для повышения безопасности на большинстве сайтов - вы сможете их импортировать и, таким образом, не разбираться с настройками программы, которых очень много. Поэтому если все эти описания настроек вам неинтересны, мотайте вниз до социального замка и получайте ссылку на готовый файл с настройками . Там же будет краткая инструкция по добавлению в свой плагин All In One WP Security.

А я пока в двух словах опишу настройки плагина.

Основные настройки All In One WP Security

Настроек плагина довольно много, они все собраны в панели управления, в пункте WP Security:

Начнем по порядку.

Панель управления

Здесь удобно собрана основная информация по системе: текущий уровень защиты, задействованные основные настройки, версия php сервера, логи заходов пользователей в админку и так далее. То есть на этой вкладке менять нечего - она играет информативную роль.

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

Настройки

Здесь вы можете создать бекапы основных файлов WordPress, в которых плагин меняет параметры безопасности: .htaccess и wp-config. Если, конечно, не сделали еще это через FTP (читайте " "). Обязательно сделайте это перед внесением изменений в настройки плагина.

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

И последний пункт - это "Импорт и экспорт" .
Именно здесь можно быстро экспортировать и импортировать настройки плагина с сайта на сайт.

Администраторы

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

Общеизвестно, что нельзя использовать стандартные имена администраторов, например, "admin" в WordPress или "administrator" в Joomla. Это крайне негативно влияет на безопасность, ведь когда логин известен, хакеру остается только подобрать пароль.

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

Также важно, чтобы имя пользователя совпадало с логином.
И проверьте сложность пароля. Плохим является пароль вроде "serega", нормальным - "serega1212", идеальным - "dfw&uuhsU2%".

Авторизация

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

Остальные вкладки в основном информационные.

Регистрация пользователя

Каптча при регистрации актуальна только если у вас на сайте или блоге есть возможность регистрации новых пользователей.

База данных

Обязательно смените префикс таблиц в базе данных. По умолчанию таблицы в базе данных WordPress начинаются с "wp_" - это плохо для безопасности. Выберите "Сгенерировать новый префикс таблиц БД " и установите флажок, чтобы плагин сам сгенерировал что-то вроде "hwy1e2_".

Хоть я менял префикс на многих сайтах WordPress - все было ок, но осторожность лишней не будет: обязательно сделайте бекап базы данных, можно, кстати, прямо на соседней вкладе это сделать.

Файловая система

На основной вкладке "Доступ к файлам " все пункты должны быть отмечены зеленым цветом. Если это не так - просто кликните на соответствующий пункт.

Отметьте флажки и на следующих вкладка "Редактирование файлов PHP " и "WP доступ к файлам ". Вам вовсе необязательно оставлять возможность вносить любые программные изменения через панель управления - лучше это делать через FTP-доступ, который взломать гораздо сложнее, ведь там безопасностью занимаются профессиональные программисты вашего хостера. Плюс не стоит "светить" важные информационные файлы системы.

Whois-поиск

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

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

Черный список

Допустим, вы "пробили" через whois, что на вашем блоге активно в комментариях распространяется спам с ip-адреса частное лицо. Вы можете добавить его в черный список и он не получит доступ к станицам сайта.

Также можно массово банить "левых" роботов, которые могут прочесывать интернет в поисках уязвимостей.

В основном эта функция имеет смысл, если вам активно кто-то пытается взломать. В большинстве случаев эти поля останутся пустыми.

Файрволл

Ну вот и добрались до основной функции плагина - брандмауера. Эти функции рассредоточены по нескольким вкладкам.

Во вкладке "Базовые правила " рекомендую включить оба флажка: "Основные функции брандмауэра " и "Защита от Пингбэк-уязвимостей ". По каждому пункту там подробно расписываются все функции, которые будут задействованы. Это базовые правила - они, как правило, не влияют на работоспособность сайта.

В "Дополнительных правилах " лично я задействую:

  • Просмотр содержимого директорий
  • HTTP-трассировка

Остальные пункты:

  • Комментарии через Прокси-серверы
  • Нежелательные строки в запросах
  • Дополнительная фильтрация символов

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

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

Далее во вкладке "5G-файрволл " можно включить комплексную защиту от хакерских атак через URL сайта. Это полезная функция, однако на моем блоге она вызвала ошибку при скачивании файлов пользователями, поэтому я ее отключил и отключаю на всех других сайтах, так как предпочитаю задействовать только те параметры, которые никогда не вызывают нареканий в работе.

Во вкладке "Интернет-роботы " я не включал флажок, так как все же есть опасения как-то помешать основному роботу Google делать свое дело. Если кто-то сможет развеять мои опасения в комментариях, буду признателен.

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

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

Защита от брутфорс-атак

Что такое "брутфорс"? Это грубая атака, которая заключается в простом переборе всех возможных паролей на сайте. То есть робот заходит на страницу со входом в админку и начинает пробовать то один, то другой пароль.

Назовите страницу входа на свое усмотрение, например, /lg-wp и в вашу админку робот для перебора паролей попасть уже не сможет - он ее просто не найдет!

"Защиту на основе куки " я не применяю - так как часто выхожу в сеть с разных браузеров, плюс периодически чищу куки и поэтому процедура залогинивания с этим параметром была бы довольно утомительной. По этой же причине не использую "Каптчу на логин ". Мне и так хватает всяких каптч в интернете, и поэтому на своем сайте стараюсь свести их к минимуму.

"Белый список для логина " - это почти 100% защита от брутфорс-роботов, так как логин и пароль может вводиться только с конкретного IP-адреса. Но я и мои клиенты часто заходят на свои сайты с разных IP-адресов, например, из офиса, с мобильного телефона, из гостей и так далее. В этом случае защита будет избыточной, так как не пустит на сайт самого владельца. Однако если вы работаете на своем сайте стационарно с одним IP-адресом, то можно задействовать данную функцию.

Защита от спама

Эту защиту я не включал, так как у меня прекрасно работает специализированный плагин Antispam Bee (читать " ").

Сканер

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

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

Остальные вкладки вам вряд ли понадобятся.

Режим обслуживания

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

Разное

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

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

1. Перед инсталляцией;
2. После инсталляции;
3. Периодические проверки и обновления.

1. Перед инсталляцией

1.1. Удаляем все ненужные файлы:
readme.html, license.txt, hello.php, ненужные темы и плагины.

1.2. Правильно отредактируем wp-config.php файл:

define("DB_NAME", "wpdb"); // Вместо "wpdb" нужно придумать сильное имя, например, wp433Fd6HW
define("DB_USER", "wpuser"); // Например, UserFB56SKl
define("DB_PASSWORD", "strongpassword"); // Тут должен быть сильный пароль, например, ‘FE876!8e#fh#9fDfds9f’
define("DB_HOST", "localhost"); // В 99% случаях это значение не нужно менять
define("DB_CHARSET", "utf8"); define("DB_COLLATE", "");

Меняем секретный ключ с дефолтного:

define("AUTH_KEY", "izmenite eto na unikalnuyu frazu");
define("SECURE_AUTH_KEY", "izmenite eto na unikalnuyu frazu");
define("LOGGED_IN_KEY", "izmenite eto na unikalnuyu frazu");
define("NONCE_KEY", "izmenite eto na unikalnuyu frazu");

на сгенерированный, с помощью сервиса

define("AUTH_KEY", "M.uFL(RBw5UkRw%P&+>E*jJZBikz3-OV7sO*-_g*{9z,PnM,T&LPAE");
define("NONCE_KEY", "d2A~8NBb%2?+6`z}?nWoD0`f]-.gUOC);

Делаем таблицы более защищенными:

$table_prefix = "wp_4i32aK_"; // Используйте только буквы, числа и символы подчерка, чтобы сделать свой table_prefix уникальным. По крайней мере, это защитит Вас от части public эксплоитов.

1.3. Создаём пользователя и базу данных для блога в консоле MySQL:
Сначала, заходим под root’ом и создаем базу данных для блога:

$ mysql -u root
mysql> CREATE database wpdb;

$ mysql -u root
mysql> CREATE database wp433Fd6HW;
Query OK, 1 row affected (0.00 sec)

Затем создаём пользователя: этот аккаунт будет иметь доступ только в базе данных WordPress. Также мы можем быть уверены, что пользователь используется только с локального сервера, а не удаленно.

mysql>
-> ON wpdb.*
-> TO "wpuser"@"localhost"
-> IDENTIFIED BY "strongpassword"; Query OK, 0 rows affected (0.01 sec)

В нашем примере это будет выглядеть так:

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON wp433Fd6HW.*
-> TO "UserFB56SKl"@"localhost"
-> IDENTIFIED BY "FE876!8e#fh#9fDfds9f";
Query OK, 0 rows affected (0.01 sec)

1.4. Уберите блок meta из кода Вашей темы
В стандартной теме кусок кода, отвечающего за вывод блока meta:

  • Meta





    • Valid XHTML

    • XFN

    • ">WordPress



  • 2. После инсталляции

    2.1. Меняем пароль Администратора по умолчанию
    Поменяйте сгенерированный на этапе установки пароль Администратора

    2.2. Удаляем версию WordPress

    remove_action ("wp_head", "wp_generator");

    В файле header.php в папке с Вашей темой удаляем строку:

    " />

    Для WordPress версии 2.8.4 находим имплементацию функции get_the_generator($type) и изменяем ее:

    function get_the_generator($type) {
    $gen = "";
    return apply_filters("get_the_generator_{$type}", $gen, $type);
    }

    2.3. Пустой index.php
    Поместите в папки wp-includes/, wp-content/, /plugins/ пустой файл index.php

    2.4. Меняем имя пользователя Admin на нечто более неочевидное
    Изменяем имя через MySQL консоль:

    wp $ mysql -u UserFB56SKl –p
    mysql> use wp;
    UPDATE wp_users SET user_login="adm" where user_login="admin";

    В нашем примере это будет выглядеть так:

    wp $ mysql -u wpuser –p
    mysql> use wp433Fd6HW;
    UPDATE wp_4i32aK_users SET user_login="adm234Df" where user_login="admin";
    Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0

    Или, если не хотите копаться с запросами, можно сделать следующее:

    1. Cоздайте новый аккаунт. Имя пользователя должно быть уникальным;
    2. Назначьте новому пользователю роль Администратора;
    3. Перелогинтесть как новый Администратор;
    4. Удалите учетку старого Администратора.

    2.5. Создаём новые роли пользователей
    Для этого необходимо сначала установить на Ваш блог плагин . Этот плагин даст Вам возможность скрупулезно и точечно устанавливать права пользователей. После активации плагина Вам, для начала нужно создать пользователя для себя. Удалите все права пользователя и затем внимательно выберите только те права, которые понадобятся Вам для ежедневной активности (писать посты, модерировать комментарии и тд). Удостоверьтесь, что только админский аккаунт имеет привилегии для активации / дезактивации плагинов, загрузки файлов, управлении опциями, переключении тем, импорт и тд.
    Если в Вашем блог будет многопользовательским, то необходимо подумать о том, какие права действительно нужны пользователям и создать на основе этого свои собственные роли.
    При создании ролей будьте осторожны, раздавая пользователям такие права как: аплоад файлов, доступ к редактированию исходного кода плагинов, активации плагинов, редактировании файлов / постов / страниц, импорт, нефильтрованный HTML, так как эти роли дают пользователям большие полномочия.

    2.6. Ограничиваем доступ к папкам wp-content и wp-includes
    С помощь файла.htaccess и специальных правил, мы запретим всё, кроме запросов на картинки, CSS и JavaScript. Файлы.htaccess необходимо положить с соответствующие директории.

    Order Allow, Deny
    Deny from all

    Allow from all

    Вы также можете добавить специфические PHP файлы для определенных шаблонов и плагинов.

    2.7. Прячем директорию wp-content
    Начиная с версии WordPress 2.6, появилась возможность переместить директорию wp-content.
    Меняем в wp-settings.php строчки:

    define("WP_CONTENT_DIR",$_SERVER["DOCUMENT_ROOT"]."/blog/wp-content");
    define("WP_CONTENT_URL","http://domain.ru/blog/wp-content");

    И, чтобы не было проблем с плагинами:

    define("WP_PLUGIN_DIR",$_SERVER["DOCUMENT_ROOT"]."/blog/wp-content/plugins");
    define("WP_PLUGIN_URL","http://domain.ru/blog/wp-conten/plugins");

    2.8. Ограничиваем доступ к папке wp-admin
    Если у Вас статический IP
    Этот шаг легко осуществим для однопользовательского блога, но может принести настоящую головную боль для многопользовательского варианта. Этот трюк подходит только, если у Вас статический IP. Файл.htaccess для директории wp-admin должен содержать следующие правила:

    AuthUserFile /dev/null
    AuthGroupFile /dev/null
    AuthName "Example Access Control"
    AuthType Basic

    order deny,allow
    deny from all
    allow from a.b.c.d. #Ваш статический IP

    Положите файл в директорию wp-admin и попробуйте зайти в эту папку через прокси. Если всё работает правильно, в доступе будет отказано. После этого попробуйте зайти со своего IP.

    Ограничиваем доступ по паролю
    Более предпочтительным может оказаться доступ к папке wp-admin по паролю. А это означает, что Вы можете заходить в админскую панель, откуда угодно. Также это вариант, если у Вас динамический IP.
    Файл.htaccess для директории wp-admin должен содержать следующие правила:

    #Файл.htpasswd находиться за пределами root директории Вашего блога

    ErrorDocument 401 default
    AuthUserFile /srv/www/user1/.htpasswd
    AuthType Basic
    AuthName "WordPress Dashboard"

    require user adminuser #Создайте секъюрный username


    require valid-user

    Сгенерируйте пароль командой:

    $ htpasswd -cm .htpasswd adminuser

    Или для генерации пароля воспользуйтесь сервисом . Вот пример для user: admin , password: test

    admin:$apr1$t3qLL...$uUmj9Wm/WbJk7YNza6ncM/

    Файл.htpasswd лучше расположить директорией выше корня блога.

    2.9. Файл wp-config.php
    Вариант первый: для защиты Ваших данных необходимо перебросить на папку выше, WordPress автоматически проверит директорию выше если не найдет у себя в корне wp-config.php.
    Если по каким-то причинам Вы не можете проделать того, что описано выше, то существует еще один вариант. А именно – защитить Ваш wp-config.php с помощью.htaccess:

    # protect wpconfig.php

    Order deny,allow
    deny from all

    2.10. Устанавливаем правильные права на файлы и папки
    Основное правило:

    1. Для файлов - 644
    2. Для папок - 755

    Из шелла эти операции можно проделать с помощью:

    cd
    find (your path) -type d -exec chmod 755 ‘{}’ \
    find (your path) -type f -exec chmod 644 ‘{}’ \

    2.11. SSL для админов
    Если Ваш сервер поддерживает SSL, то лучше сделать доступ в админку защищенной. Для этого в файле wp-config.php уберите комментарии в строчке:

    define(’FORCE_SSL_ADMIN’, true);

    2.12. Удалите вывод логов WordPress
    В файле functions.php в папке с Вашей темой добавляем строку:

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

    2.13. Запрещаем индексации с помощью Robots.txt
    Проверить правильность можно по адресу

    2.14. Плагины для Вашей безопасности
    Login LockDown - Устанавливаем количество ложных логинов
    Для этого есть два решения в виде плагинов and . После того, как плагин активирован, он записывает все попытки залогиниться. Плагин позволяет запретить посетителю логиниться определенное время, после того как посетитель несколько раз неправильно ввёл пароль.

    Belavir – Следим за изменениями в ключевых php файлах

    WPIDS – Определяем признаки внедрения

    WordPress Online Security Scanner – Сканируем блог на уязвимости

    Akismit – Противоборство СПИДу СПАМу

    SpamBam – Определяем валидный ли браузер пользует клиент

    3. Периодические проверки и обновления

    3.1. Следите за обновлением WordPress
    3.2. Следите за обновлением плагинов
    3.3. Следите за обновлениями безопасности

    3.4. Проверяйте код темы и плагинов, которые Вы хотите добавить, на «дырявость»
    3.5. Боритесь со спамом
    3.6. Регулярно делайте полный backup базы данных Вашего блога
    3.7. Читайте девелоперские блоги
    Небольшой список:

    Из статьи вы узнаете:

    1. Используйте хороший логин.

    Защита сайта на WordPress начинается с элементарного — создания хорошего логина. Устанавливая WordPress, пользователи часто используют логин, который программа установки предлагает по умолчанию, а именно – admin . Это то, что проверяют боты, ищущие дыры в безопасности вашего сайта, в первую очередь. Используя этот логин, вы уже предоставляете половину необходимой информации для хакеров, и им остается только подобрать пароль.

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

    Шаг 1 – Создание нового пользователя

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

    В главном меню слева выберите Пользователи >> Добавить нового .

    Введите всю необходимую информацию для нового пользователя, определив его роль как «Администратор» и нажмите «Добавить нового пользователя» .

    Шаг 2 – Удаление пользователя admin

    После этого выйдите из системы управления, войдите под новой учетной записью и удалите пользователя admin из системы одним из способов:

    Способ 1 – В главном меню слева выберите Пользователи >> Все пользователи . Наведите на имя пользователя admin , и вы увидите функцию «Удалить» .

    Способ 2 — В главном меню слева выберите Пользователи >> Все пользователи . Найдите пользователя admin , отметьте его галочкой и из выпадающего меню «Действия» выберите «Удалить» . После этого нажмите на опцию «Применить» под списком пользователей. Эта опция удобна, если вам необходимо удалить сразу несколько пользователей.

    Так же вы можете изменить имя пользователя admin через запрос к базе данных:
    UPDATE wp_users SET user_login = ‘новый_логин’ WHERE user_login = ‘admin’;

    У данного способа есть минус: автор для постов, написанных пользователем admin , не будет изменен. Для того, чтобы это исправить, необходимо сделать еще один запрос к базе данных:
    UPDATE wp_posts SET post_author = ‘новый_логин’ WHERE post_author = ‘admin’;

    2. Используйте сложный и уникальный пароль.

    Защита админки WordPress, конечно, невозможна без сложного хорошего пароля. Важно, чтобы он был уникальным и включал в себя цифры, буквы разных регистров, знаки пунктуации, символы и прочее. Пароли типа: pass, 1q2w3e4r5t6y, 87654321, qwerty, abc123, 111111, 1234, дата вашего рождения и т.д. – не являются надежными, но многие пользователи продолжают их использовать. Пример хорошего пароля: pcVaOF8r39. Конечно, вам сложно будет запомнить такой пароль, но для этого существует ряд программ, которые хранят и генерируют пароли, а также могут быть интегрированы в интерфейс вашего браузера (например, Password Agent, KeyPass, Roboform и т.д.)

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

    Не забывайте регулярно обновлять свои пароли.

    3. Обновляйте версию WordPress.

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

    4. Скрывайте версию WordPress.

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

    С помощью файла functions.php можно запретить вывод информации о версии вашей платформы. Для этого вам необходимо открыть файл functions.php , расположенный в корневой папке текущей темы вашего веб-сайта (wp-content/themes/текущая_тема_wordpress) , и добавить следующий код:
    remove_action(‘wp_head’, ‘wp_generator’);

    Или же можно добавить следующий код в файл functions.php :

    /* Hide WP version strings from scripts and styles
    * @return {string} $src
    * @filter script_loader_src
    * @filter style_loader_src
    */
    function fjarrett_remove_wp_version_strings($src) {
    global $wp_version;
    parse_str(parse_url($src, PHP_URL_QUERY), $query);
    if (!empty($query[‘ver’]) && $query[‘ver’] === $wp_version) {
    $src = remove_query_arg(‘ver’, $src);
    }
    return $src;
    }
    add_filter(‘script_loader_src’, ‘fjarrett_remove_wp_version_strings’);
    add_filter(‘style_loader_src’, ‘fjarrett_remove_wp_version_strings’);

    /* Hide WP version strings from generator meta tag */
    function wpmudev_remove_version() {
    return »;
    }
    add_filter(‘the_generator’, ‘wpmudev_remove_version’);

    Помимо вышесказанного, в папке любой темы WordPress, вы найдете header.php файл. В нём также указывается версия вашей установки, что для хакера является очень интересным, как упоминалось ранее. Удалив следующую строку из файла, вы избавитесь от этой лишней информации:

    ” />

    5. Скачивайте темы и плагины с надежных ресурсов.

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

    6. Не храните ненужные файлы.

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

    7. Регулярно проверяйте свой локальный компьютер на наличие вирусов.

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

    8. Делайте резервные копии сайта.

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

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

    9. Используйте защищенное соединение.

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

    10. Создайте.htaccess файл.

    Код, который блокирует доступ к директории /wp-content:

    Order deny,allow
    Deny from all

    Allow from all

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

    Код, защищающий от хотлинкинга:

    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yourdomain\.com/
    RewriteCond %{HTTP_REFERER} !^$
    RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

    Хотлинкинг – это вставка изображения с вашего сервера на чужой сайт\блог. Трафик же при этом идет непосредственно на ваш сервер.

    При помощи кода, указанного выше, вы можете заставить сервер проверить, откуда именно пришел запрос: если со страниц вашего веб-сайта, то сервер отдает изображение пользователю без проблем; если же с чужого веб-сайта – то показывает изображение с ошибкой.

    11. Измените префикс таблиц базы данных.

    Защита WordPress от хакеров также усилится, если убрать первоначальный префикс wp_ — это усложнит поиск для злоумышленников. Рассмотрим несколько способов:

    Способ 1 – Подходит для новых установок через Softaculous
    Если ваш хостинг-провайдер предоставляет вам возможность использования скрипта Softaculous для установки WordPress, то изменить префикс вы можете во время первоначальной установки: в секции Advanced Options вам необходимо будет внести требуемые изменения.

    Способ 2 – Для уже работающих сайтов и свежих установок WordPress
    Если ваш WordPress давно установлен и сайт работает, то вы можете поменять префикс с помощью программы phpMyAdmin.

    Выберите необходимую базу данных из списка и сделайте следующий запрос к базе данных:

    RENAME table `wp_commentmeta` TO `newprefix_commentmeta`;
    RENAME table `wp_comments` TO `newprefix_comments`;
    RENAME table `wp_links` TO `newprefix_links`;
    RENAME table `wp_options` TO `newprefix_options`;
    RENAME table `wp_postmeta` TO `newprefix_postmeta`;
    RENAME table `wp_posts` TO `newprefix_posts`;
    RENAME table `wp_terms` TO `newprefix_terms`;
    RENAME table `wp_term_relationships` TO `newprefix_term_relationships`;
    RENAME table `wp_term_taxonomy` TO `newprefix_term_taxonomy`;
    RENAME table `wp_usermeta` TO `newprefix_usermeta`;
    RENAME table `wp_users` TO `newprefix_users`;

    где «newprefix_» необходимо заменить на новый префикс, который вы хотите использовать вместо префикса «wp_» .

    После этого вы увидите новый префикс в таблицах базы данных:

    Чтобы убедиться, что все изменения прошли успешно и префикс wp_ больше не используется в таблице _options и _usermeta , вам необходимо будет сделать еще один запрос к базе данных:

    SELECT * FROM `newprefix_options` WHERE `option_name` LIKE ‘%wp_%’

    SELECT * FROM `newprefix_usermeta` WHERE `meta_key` LIKE ‘%wp_%’

    В результате вы можете найти ряд префиксов, которые вам необходимо будет переименовать вручную с помощью кнопки Изменить :

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

    После этого не забудьте также внести изменения префикса в wp-config.php файле:

    Вы также можете использовать специальные плагины для изменения префикса базы данных: Change DB prefix или Change table prefix.

    12. Ограничивайте количество попыток доступа.

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

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

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

    Чтобы убрать вывод этого сообщения, необходимо открыть файл functions.php , расположенный в папке текущей темы вашего веб-сайта (wp-content/themes/текущая_тема_WordPress) и добавить такой код:
    add_filter(‘login_errors’,create_function(‘$a’, «return null;»));

    13. Удалите readme.html и license.txt.

    Файлы readme.html и license.txt присутствуют в корневой папке любой установки WordPress. Вам эти файлы ни к чему, а хакерам они могут облечить их злодеяния. Например, чтобы выяснить текущую версию вашего WordPress и много чего другого полезного для взлома веб-сайта. Рекомендуем удалить их сразу же после установки WordPress.

    14. Используйте SSL-сертификат.

    Для передачи защищенной информации и конфиденциальности обмена данными, рекомендуем использовать SSL-протокол. Особенно это актуально для интернет-магазинов, если вы не хотите, чтобы личные данные о ваших клиентах передавалась незащищенным путем.

    Прежде всего вам необходимо будет и установить его для вашего доменного имени.

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

    15. Измените файл wp-config.php.

    Добавив такой код в wp-config.php файл, вы так же сможете укрепить защиту вашего веб-сайта:

    Ограничение на изменения темы и плагинов:
    define(‘DISALLOW_FILE_EDIT’, true);

    Отключение возможности установки и удаления плагинов:
    define(‘DISALLOW_FILE_MODS’, true);

    Добавление salt-ключей или так называемых ключей безопасности: сначала необходимо будет найти такие строки в wp-config.php файле:

    Вы увидите, что ключи уже установлены и их можно поменять. Либо вы увидите строки такого типа: ‘put your unique phrase here’, что говорит о том, что ключи пока не установлены:
    /**#@+
    * Authentication Unique Keys and Salts.
    *
    * Change these to different unique phrases!
    * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
    * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
    *
    * @since 2.6.0
    */
    define(‘AUTH_KEY’, ‘put your unique phrase here’);
    define(‘SECURE_AUTH_KEY’, ‘put your unique phrase here’);
    define(‘LOGGED_IN_KEY’, ‘put your unique phrase here’);
    define(‘NONCE_KEY’, ‘put your unique phrase here’);
    define(‘AUTH_SALT’, ‘put your unique phrase here’);
    define(‘SECURE_AUTH_SALT’, ‘put your unique phrase here’);
    define(‘LOGGED_IN_SALT’, ‘put your unique phrase here’);
    define(‘NONCE_SALT’, ‘put your unique phrase here’);

    О некоторых плагинах хочется упомянуть отдельно:

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

    Этот плагин проверяет ваш веб-сайт на различные уязвимости в безопасности и предлагает ряд методов по их устранению. Например, пароли, разные права доступа к файлам, защита баз данных, защита информации о версии WordPress, защита администратора и прочее.

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

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

    • Перевод

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

    Эта статья сфокусирована на вопросах усиления безопасности WordPress - как административной панели, так и настроек блога, подразумевая все содержимое папки «wp-admin» , которое отображается только после авторизации . Мы сознательно выделили фразу "после авторизации " - вы должны четко осознавать, что только один простой запрос отделяет «злого хакера» и админку всего вашего блога или сайта! А последняя защищена настолько сильно, насколько мощный пароль вы выбрали.

    Чтобы в разы усложнить задачу взломщиков, мы предлагаем набор операций, которые вы можете выполнить вручную. Эти решения не гарантируют 100% защиту, но с их помощью вы заметно улучшите безопасность вашего блога.

    1. Переименуйте папку wordpress.

    Начиная с версии 2.6, стало возможным изменять путь к папке wp-content . К сожалению это до сих пор неприменимо к папке wp-admin . Думающие о безопасности блоггеры смирились с этим и стали надеяться, что это станет возможным в будущих версиях. Пока этого не случилось, предлагаем воспользоваться следующим альтернативным решением проблемы. После распаковки архива с файлами WordPress, вы увидите папку «WordPress» - переименуйте папку (в идеале во что-то непонятное вроде " wordpress_live_Ts6K" ) и после этого настройте соответственным образом файл wp-config.php , который находится в корневой директории.
    Что нам даст это изменение?
    • Во-первых, все файлы WordPress не будут смешаны с другими файлами в корне сайта, таким образом мы повысим ясность корневого уровня.
    • Во-вторых, множество копий WordPress может быть установлено параллельно в папки с разными именами, исключая их взаимодействие, что делает это идеальным для тестирования
    • Третье преимущество напрямую касается безопасности: административная зона (и весь блог в целом) больше не находится в корневой папке и для проведения каких-либо действий по взлому сначала ее нужно будет найти. Это проблемно для людей, но что касается ботов - вопрос времени.

    Несколько установленных версий в root-каталоге - это возможно!

    Примечание: Если системные файлы WordPress больше не в корневой директории, и имя папки инсталяции изменено в соответствии с рекомендациями, описанными выше, блог будет все равно доступен по адресу wp-config.ru . Почему? Зайдите в раздел «Общие настройки (General settings)» вашего блога и введите в поле «WordPress address (URL)» реальный адрес блога на сервере, как показано в примере:

    Адрес блога должен быть красивым и ненавязчивым

    Это позволит блогу отображаться по красивому виртуальному адресу.

    2. Усовершенствуйте файл wp-config.php

    Конфигурационный файл WordPress wp-config.php содержит в себе некоторые настройки сайта и информацию для доступа к базе данных. Также там другие настройки, касающиеся безопасности (они представлены в списке ниже). Если таких значений в этом файле нет, или же имеются только установленные по умолчанию, вам необходимо, соответственно, добавить или изменить их:
    • Ключи безопасности: начиная с версии 2.7, в WordPress есть четыре ключа безопасности, которые должны быть правильно установлены. WordPress спасает вас от необходимости выдумывать эти строки самому, автоматически генерируя правильные ключи с точки зрения безопасности. Вам просто нужно вставить ключи в соответствующие строки файла wp-config.php. Эти ключи являются обязательными для обеспечения безопасности вашего блога.
    • Префикс таблицы заново установленного WordPress блога не должен быть стандартным «wp_» Чем больее сложным будет значение префикса, тем менее вероятна возможность несанкционированного доступа к таблицам вашей MySQL базы данных. Плохо: $table_prefix = "wp_"; . Намного лучше: $table_prefix = "wp4FZ52Y_"; Не стоит бояться забыть это значение - вам необходимо ввести его только один раз, больше оно вам не понадобится.
    • Если у вас на сервере доступно SSL шифрование , рекомендуется включить его для защиты административной зоны. Это можно сделать, добавив следующую команду в файл wp-config.php: define("FORCE_SSL_ADMIN", true);
    Также вы можете регулировать другие системные настройки в конфигурационном файле. Четкий и исчерпывающий список доступных настроек доступен на странице Кодекса

    Не пренебрегайте установкой правильных ключей безопасности!

    3. Переместите файл wp-config.php

    Также начиная с версии 2.6, WordPress позволяет перемещать файл wp-config.php на высший уровень. По причине того, что этот файл содержит в себе намного более важную информацию, чем какой либо другой, и потому что всегда намного сложнее получить доступ к корневой папке сервера, имеет смысл хранить его не в той же директории, где и остальные файлы. WortdPress автоматически обратится к высшей папке в поиске файла wp-config.php . Любые попытки пользователей самим настроить путь бесполезны.

    4. Защитите файл wp-config.php

    Не все ISP серверы позволят вам передавать данные на более высокие уровни, чем корневая директория. Другими словами, не у всех хватит прав для осуществления предыдущего шага. Или по другим причинам: например, если у вас несколько блогов, при определенной структуре папок у вас не получится положить в корень все файлы, так как их имена будут совпадать для каждого из блогов. В этом случае мы можем запретить доступ к файлу wp-config.php извне при помощи файла .htaccess . Вот код для этого:

    # protect wpconfig.php
    Order deny,allow deny from all

    Очень важно убедиться, что файл .htaccess находится в той же директории что и файл wp-config.php .

    5. Удалите учетную запись администратора.

    Во время процесса установки WordPress создает учетную запись администратора с ником «admin» по умолчанию. С одной стороны это вполне логично, с другой - пользователь с известным ником, т.е. ID - 1, обладающий административными правами, является вполне предсказуемой мишенью для хакеров с их программами подбора паролей. Отсюда следует наш совет:
    • Создайте еще одного пользователя с административными правами и вашим ником.
    • Завершите сеанс работы.
    • Залогиньтесь под новым аккаунтом.
    • Удалите учетную запись "admin ".
    Если у вас не новый блог и под учетной записью admin вы уже публиковали посты или комментарии, то из предложенных вариантов в момент удаления, выберите пункт «Связать все записи и ссылки с:» и выберите имя нового пользователя:

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

    6. Выберите сильный пароль.

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

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

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

    7. Защитите папку «wp-admin».

    Следуя пословице «две головы лучше одной», существует способ вдвое усилить защиту административной зоны. Защита регулируется файлом .htaccess , который должен находится в папке «wp-admin» вместе с файлом .htpasswd , который хранит логин и пароль пользователя. После обращения к папке, вам нужно будет ввести логин и пароль, но разница в том, что в этом случае авторизация контролируется на стороне сервера, а не силами самого WordPress.

    Для того чтобы просто и быстро сгенерировать файлы .htaccess и .htpasswd , воспользуйтесь этим сервисом .

    8. Запретите отображение ошибок на странице авторизации.

    Страница авторизации WordPress - это дверь в административную зону вашего блога, которая становится доступна после безошибочного прохождения верификации. У каждого пользователя существует бесконечное количество попыток авторизации, и каждый раз по умолчанию услужливый WordPress указывает, в чем именно была ошибка. То есть, если введенный логин окажется неверным - WordPress так и скажет. Это удобно для пользователя, но также и для хакера.

    Несложно догадаться, как быстро сокращается вероятность подбора комбинации логина/пароля, когда система указывает что именно введено неверно. Простая строка кода, поможет решить эту проблему, достаточно добавить её в файл functions.php вашей темы:

    Add_filter("login_errors",create_function("$a", «return null;»));

    Изначальный/измененный вид страницы авторизации.

    9. Ограничьте количество неудачных попыток авторизации.

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