Административная зона любого веб-приложения давно стала излюбленной мишенью для хакеров и её безопасность чрезвычайно заботит разработчиков. Это касается и WordPress — при сустановке нового блога система создает аккаунт администратора с уникальным случайно сгенерированным в реальном времени паролем, чем блокирует всеобщий доступ к настройкам системы, контролируя его c помощью страницы авторизации.
Эта статья сфокусирована на вопросах усиления безопасности WordPress — как административной панели, так и настроек блога, подразумевая все содержимое папки «wp-admin», которое отображается только после авторизации. Мы сознательно выделили фразу "после авторизации" — вы должны четко осознавать, что только один простой запрос отделяет «злого хакера» и админку всего вашего блога или сайта! А последняя защищена настолько сильно, насколько мощный пароль вы выбрали.
Чтобы в разы усложнить задачу взломщиков, мы предлагаем набор операций, которые вы можете выполнить вручную. Эти решения не гарантируют 100% защиту, но с их помощью вы заметно улучшите безопасность вашего блога.
Начиная с версии 2.6, стало возможным изменять путь к папке wp-content. К сожалению это до сих пор неприменимо к папке wp-admin. Думающие о безопасности блоггеры смирились с этим и стали надеяться, что это станет возможным в будущих версиях. Пока этого не случилось, предлагаем воспользоваться следующим альтернативным решением проблемы. После распаковки архива с файлами WordPress, вы увидите папку «WordPress» — переименуйте папку (в идеале во что-то непонятное вроде "wordpress_live_Ts6K") и после этого настройте соответственным образом файл wp-config.php, который находится в корневой директории.
Что нам даст это изменение?
Несколько установленных версий в root-каталоге — это возможно!
Примечание: Если системные файлы WordPress больше не в корневой директории, и имя папки инсталяции изменено в соответствии с рекомендациями, описанными выше, блог будет все равно доступен по адресу wp-config.ru. Почему? Зайдите в раздел «Общие настройки (General settings)» вашего блога и введите в поле «WordPress address (URL)» реальный адрес блога на сервере, как показано в примере:
Адрес блога должен быть красивым и ненавязчивым
Это позволит блогу отображаться по красивому виртуальному адресу.
Конфигурационный файл WordPress wp-config.php содержит в себе некоторые настройки сайта и информацию для доступа к базе данных. Также там другие настройки, касающиеся безопасности (они представлены в списке ниже). Если таких значений в этом файле нет, или же имеются только установленные по умолчанию, вам необходимо, соответственно, добавить или изменить их:
Также вы можете регулировать другие системные настройки в конфигурационном файле. Четкий и исчерпывающий список доступных настроек доступен на странице Кодекса
Не пренебрегайте установкой правильных ключей безопасности!
Также начиная с версии 2.6, WordPress позволяет перемещать файл wp-config.php на высший уровень. По причине того, что этот файл содержит в себе намного более важную информацию, чем какой либо другой, и потому что всегда намного сложнее получить доступ к корневой папке сервера, имеет смысл хранить его не в той же директории, где и остальные файлы. WortdPress автоматически обратится к высшей папке в поиске файла wp-config.php. Любые попытки пользователей самим настроить путь бесполезны.
Не все ISP серверы позволят вам передавать данные на более высокие уровни, чем корневая директория. Другими словами, не у всех хватит прав для осуществления предыдущего шага. Или по другим причинам: например, если у вас несколько блогов, при определенной структуре папок у вас не получится положить в корень все файлы, так как их имена будут совпадать для каждого из блогов. В этом случае мы можем запретить доступ к файлу wp-config.php извне при помощи файла .htaccess. Вот код для этого:
[code]# protect wpconfig.php
[/code]
Очень важно убедиться, что файл .htaccess находится в той же директории что и файл wp-config.php.
Во время процесса установки WordPress создает учетную запись администратора с ником «admin» по умолчанию. С одной стороны это вполне логично, с другой — пользователь с известным ником, т.е. ID — 1, обладающий административными правами, является вполне предсказуемой мишенью для хакеров с их программами подбора паролей. Отсюда следует наш совет:
Если у вас не новый блог и под учетной записью admin вы уже публиковали посты или комментарии, то из предложенных вариантов в момент удаления, выберите пункт «Связать все записи и ссылки с:» и выберите имя нового пользователя:
Примечание: В идеале желательно чтобы логин нового пользователя отличался от отображаемого имени пользователя в постах, чтобы никто не узнал ваш логин.
Вероятность и частота потенциальных атак прямо зависит от популярности блога. И желательно до этого момента быть уверенным, что в вашем сайте не осталось слабых звеньев в цепи безопасности.
Чаще всего именно пароли являются самым слабым звеном в этой цепи. Почему? Способы выбора пароля у большинства пользователей зачастую необдуманны и беспечны. Многие проведенные исследования показали, что большинство паролей — односложные существующие слова, набранные строчными буквами, которые не сложно подобрать. В программах подбора паролей существуют даже списки самых часто используемых паролей.
В WordPress реализован интуитивно понятный индикатор стойкости набираемого пароля, который показывает цветом его уровень сложности:
Мы рекомендуем использовать как минимум семь символов, комбинировать строчные и прописные и использовать служебные символы такие как! "? $ % ^ & ( ).
Следуя пословице «две головы лучше одной», существует способ вдвое усилить защиту административной зоны. Защита регулируется файлом .htaccess, который должен находится в папке «wp-admin» вместе с файлом .htpasswd, который хранит логин и пароль пользователя. После обращения к папке, вам нужно будет ввести логин и пароль, но разница в том, что в этом случае авторизация контролируется на стороне сервера, а не силами самого WordPress.
Для того чтобы просто и быстро сгенерировать файлы .htaccess и .htpasswd, воспользуйтесь этим сервисом.
Страница авторизации WordPress — это дверь в административную зону вашего блога, которая становится доступна после безошибочного прохождения верификации. У каждого пользователя существует бесконечное количество попыток авторизации, и каждый раз по умолчанию услужливый WordPress указывает, в чем именно была ошибка. То есть, если введенный логин окажется неверным — WordPress так и скажет. Это удобно для пользователя, но также и для хакера.
Несложно догадаться, как быстро сокращается вероятность подбора комбинации логина/пароля, когда система указывает что именно введено неверно. Простая строка кода, поможет решить эту проблему, достаточно добавить её в файл functions.php вашей темы:
[php]add_filter('login_errors',create_function('$a', «return null;»));[/php]
Изначальный/измененный вид страницы авторизации.
WordPress не ведет статистику авторизаций, как удачных, так и нет. Это очень неудобно для администратора, так как у него нет возможности увидеть были ли попытки несанкционированного доступа, чтобы принять какие-либо меры, если они участятся. Предлагаем два решения: плагины Login LockDown и Limit Login Attempts. После установки они не только ведут лог авторизаций, но также ограничивают количество неудавшихся попыток авторизации, блокируя на определенное время IP пытающегося.
И последнее: как правило разработчики WordPress очень быстро реагируют, если находят уязвимости в движке. Поэтому следите за обновлениями и обновляйтесь, когда возможно. Благо сам WordPress оповещает о выходе новой версии. Это касается и плагинов — держите их версии актуальными.
Запомните: меньше значит лучше, когда это касается любых надстроек и аддонов. Как администратор, вы должны удостовериться, что у вас установлены и активны, только те плагины, которые действительно вам нужны. Каждый плагин — это потенциальный риск и угроза безопасности, так как все они разрабатываются посторонними разработчиками.
Как вы защищаете свой блог от взлома? Что используете для этого?
Перевод с сайта WordPress для каждого!
Эта статья сфокусирована на вопросах усиления безопасности 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. Вот код для этого:
[code]# protect wpconfig.php
<files wp-config.php> Order deny,allow deny from all
[/code]
Очень важно убедиться, что файл .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 вашей темы:
[php]add_filter('login_errors',create_function('$a', «return null;»));[/php]
Изначальный/измененный вид страницы авторизации.
9. Ограничьте количество неудачных попыток авторизации.
WordPress не ведет статистику авторизаций, как удачных, так и нет. Это очень неудобно для администратора, так как у него нет возможности увидеть были ли попытки несанкционированного доступа, чтобы принять какие-либо меры, если они участятся. Предлагаем два решения: плагины Login LockDown и Limit Login Attempts. После установки они не только ведут лог авторизаций, но также ограничивают количество неудавшихся попыток авторизации, блокируя на определенное время IP пытающегося.
10. Поддерживайте актуальные версии.
И последнее: как правило разработчики WordPress очень быстро реагируют, если находят уязвимости в движке. Поэтому следите за обновлениями и обновляйтесь, когда возможно. Благо сам WordPress оповещает о выходе новой версии. Это касается и плагинов — держите их версии актуальными.
Запомните: меньше значит лучше, когда это касается любых надстроек и аддонов. Как администратор, вы должны удостовериться, что у вас установлены и активны, только те плагины, которые действительно вам нужны. Каждый плагин — это потенциальный риск и угроза безопасности, так как все они разрабатываются посторонними разработчиками.
А вы?
Как вы защищаете свой блог от взлома? Что используете для этого?
Перевод с сайта WordPress для каждого!