Это настоящий кошмар: зайти на свой сайт и увидеть, что его взломали. Если вы работаете над своим персональным блогом, то это может стать просто немного неприятным происшествием. Если вы ведете сайт клиента, то готовьтесь к тяжелому и напряженному дню. Если же такое происходит с вашим интернет магазином — здравствуй, приступ паники! В любом случае, ничего хорошего от такой ситуации ожидать не стоит. Поэтому, вам нужно придумать план, который помог бы избежать негативных последствий от атак хакеров.
Смотрите также:
И мы с радостью вам в этом поможем. Это первая часть мини-серии, в которой мы расскажем о том, как сделать свой WordPress проект максимально защищенным.
Пару слов про безопасность в WordPress
Как вы думаете, WordPress является безопасной платформой? Будет абсолютно нормально, если вы ответите "Нет", многие люди именно так и считают. Но это очень далеко от истины... по крайней мере, на сегодняшний день.
Что общего между Microsoft Windows, Android, Google Chrome и WordPress? Все это примеры очень популярного программного обеспечения. Люди постоянно находят пробелы в их безопасности. Но даже с учетом того, что им все время приходится исправлять ошибки и уязвимости, делает ли наличие пробелов безопасности эти инструменты ненадежными?
Нет, это не так. Частые обновления не обязательно означают то, что часть кода плохо написана или программа не защищена от внешних угроз безопасности. Игра в кошки-мышки между разработчиками и хакерами будет продолжаться всегда, и хакеры всегда будут находить способ взломать программное обеспечение. Если оно является таким масштабным, как WordPress, шансы на попадание под атаку хакеров вырастают.
В данном вопросе очень важно уметь быстро реагировать и в некоторых случаях даже опережать некоторые события. Здесь WordPress выгодно выделяется. Вам придется подождать несколько дней, пока разработчики в Google Chrome смогут залатать их дыру в безопасности или даже несколько недель в случае с Microsoft.
Огромное сообщество разработчиков WordPress сможет исправить проблему в день ее появления и обнаружения. Помимо этого, есть целая команда, которая работает над безопасностью ядра WordPress, так что мы в хороших руках. Если рассматривать темы и плагины, то там можно легче найти ошибки и недостатки, но может понадобиться больше времени на их решение.
В любом случае, ничто не является стопроцентно безопасным. Мы живем в то время, когда ученые собираются взломать код в наших мозгах! Ничто не является непроницаемым, и WordPress не исключение. Но невозможность обеспечить стопроцентную безопасность не означает, что мы не должны стремиться к 99,999%.
Увеличение безопасности в WordPress
Исходя из личного опыта и некоторых исследований, мы составили список мер безопасности, которые необходимо принять. Без лишних слов, давайте приступим.
Файл .htaccess
Давайте начнем с простого. Если ваш сайт WordPress размещается на веб-сервере Apache, и в Настройках → Постоянные ссылки вы включили Название записи, WordPress создаст файл с именем .htaccess для хранения основных инструкций для постоянных ссылок WordPress. Если вы не меняли настройки постоянных ссылок, файл .htaccess не будет создан ядром, но следующие советы по-прежнему можно применить, просто для этого нужно создать файл самостоятельно.
Совет: Если вы собираетесь создать файл .htaccess самостоятельно, и у вас возникли проблемы с созданием файла без имени, но с расширением .htaccess, просто загрузите пустой файл с любым именем (например, Untitled.txt) и измените название и расширение в вашем FTP клиенте.
Среди всех трюков и подсказок, выполнить данный пункт и защитить свой .htaccess проще всего. Все, что вам нужно сделать, это добавить следующие строки в файл:
# protect .htaccess <Files .htaccess> order allow,deny deny from all </Files>
Это поможет защитить файл .htaccess от тех, кто хочет получить доступ к нему.
Далее, давайте отключим показ содержимого папок:
# disable directory browsing Options All -Indexes
Теперь посторонние не смогут увидеть содержимое ваших папок. Например, myblog.com/wp-content/uploads/. Как правило, любой был бы в состоянии увидеть загруженные файлы или перемещаться по вложенным папкам в директории /uploads/, но с этой маленькой уловкой, они увидят ответ от сервера: 403 Forbidden.
Тут стоить отметить "черный список" от Perishable Press: The 5G Blacklist. Этот черный список защищает ваш сайт от многих видов вредоносных действий: начиная от вредных строк запроса и заканчивая плохими пользовательскими агентами.
С данным пунктом мы закончили. Давайте перейдем к манипуляциям с wp-config.php.
Файл wp-config.php
С точки зрения безопасности файл wp-config.php, скорее всего, самый важный файл во всей вашей установке WordPress. И есть много действий над ним, которые помогут вам укрепить ваш сайт.
Давайте начнем с интересного: вы знаете, что можете разместить свой файл wp-config.php на уровень выше в корневом каталоге wordpress? Если это вас не запутает, переместите его прямо сейчас. Зачастую мы устанавливаем WordPress в директориях public_html, и файл wp-config.php внутри root.
Не уверены, что это очень сильно повысит уровень защищенности сайта, но со стороны кажется, что файл теперь находится в большей безопасности. На Stack Exchange был хороший спор на эту тему.
Давайте вернемся обратно в root к файлу .htaccess и добавим следующие строки, чтобы запретить доступ к файлу wp-config.php:
# protect wpconfig.php <files wp-config.php> order allow,deny deny from all </files>
Вот еще одна интересная идея: как насчет удаления разрешения на редактирование темы и файлов плагина? Для этого вам понадобится добавить следующую строку в файл wp-config.php:
define( 'DISALLOW_FILE_EDIT', true );
Если вы хотите отключить возможность установки или удаления плагинов вообще, под предыдущую строку добавьте следующее:
define( 'DISALLOW_FILE_MODS', true );
Еще два совета для улучшения WordPress: измените префикс базы данных, а также добавьте ключи безопасности (или salt-ключи) в файл wp-config.php.
С первым все вообще легко: проверьте, установили ли вы префикс базы данных, как значение по умолчанию, найдя следующую строку:
$table_prefix = 'wp_';
Если там задано значение wp_, просто измените его на любое другое. Вам не нужно его запоминать, так что вы можете ввести любую рандомную комбинацию букв и цифр. Нам нравится комбинации типа wp_fd884vg_ — они и безопасные, и читаемые.
Изменить ключи безопасности также очень легко. Убедитесь, что ключи пустые, найдя следующие строки:
/**#@+ * 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');
Если в них всех написано: 'put your unique phrase here', значит, они еще не установлены. В этом случае, перейдите по этой ссылке https://api.wordpress.org/secret-key/1.1/salt/ и скопируйте сгенерированные на той странице ключи.
Совет: Если вы хотите узнать о salt-ключах, есть большая статья о преимуществах этой меры безопасности.
Ну вот и все! Сегодня мы успешно усвоили полезную информацию и закончили с трюками в wp-config.php.
Заключение
Надеемся, что вам понравились наши советы по .htaccess и wp-config.php. Во второй части этой мини-серии мы поделимся другими важными советами и представим некоторые интересные WordPress плагины. Оставляйте свои отзывы и впечатления в комментариях, увидимся в следующей части!
Комментарии к записи: 7
Тема нужная. Советы — полезные. Ждем-с продолжения, надеюсь в обзоре плагинов мелькнет iThemes Security и акценты, на которые стоит обратить внимание при его настройке.
salt-ключи автоматически генерируются при установке, не?
Смотря каким образом происходила установка. Если вручную развернуть дистрибутив по фтп, то по умолчанию в файле wp-config будет пусто.
Очередная бесполезная статья. Просто используйте плагин iThemes Security и грамотно его настраивайте — он делает абсолютно всё, что написано в статье и докучи остальных настроек — как например смена id админа, скрытие версии wordpress, изменение url админки, смена префикса бд, бан юзеров, чёрные списки, антибрутфорс и т.д.
Кстати профессиональную версию iThemes Security Pro можно скачать бесплатно с wpnull.org
Рыкламаааа, плагины плагины, их нужно использовать только при острой необходимости, как по мне, и все что можно написать вручную, лучше сделать так. Не совсем точно передал свою мысль, но основной смысл должен быть понятен!
Тем более ПРО версию качать с левого сайта может быть себе дороже … разве нет ?
ПРО плагины, также как и все остальные, распространяются по лицензии GPL — т.е. свободно распространяемые.
Что касается вирусов и т.п. внутри самого плагина — тут вопрос доверия к ресурсу и, в любом случае, можно самостоятельно проверить любой файл на наличие в нём шеллов или прочих вирусов.
Что касается безопасности — лучше довериться профессионалам и установить плагин, который разрабатывается годами и проверен временем, чем самому ковырять сайт, тем более плагин только вносит необходимые изменения в htaccess и настройки WP и никаким образом не грузит сайт)
Добрый день! Подскажите, пожалуйста — в какую часть файла .htaccess вставить код для его защиты?