Статьи

Укрепление безопасности в WordPress, часть 1

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

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

Как вы думаете, WordPress безопасен? Это нормально, если вы этого не сделаете, потому что многие люди думают, что WordPress — это небезопасная система управления контентом, но это очень далеко от истины … по крайней мере, сегодня.

Что общего между Microsoft Windows, Android, Google Chrome и WordPress? Все они — чрезвычайно популярное программное обеспечение, и люди постоянно находят в них дыры в безопасности. Несмотря на то, что все они регулярно исправляются с ошибками и недостатками безопасности, делает ли дыры в безопасности их небезопасными?

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

Здесь важно быть отзывчивым и упреждающим, и это то, в чем превосходство WordPress. Вам придется подождать несколько дней, пока Google Chrome закроет дыру в безопасности, или даже недели, чтобы Microsoft выпустила исправление безопасности, но огромное сообщество разработчиков WordPress сможет исправить недостатки безопасности нулевого дня до конца день первый Кроме того, целая команда работает над защитой ядра WordPress, поэтому мы тоже в хороших руках. Что касается тем и плагинов, может быть немного легче находить ошибки и недостатки, и может потребоваться больше времени для их исправления, но сообщество получает поддержку разработчиков.

Тем не менее, ничто не на сто процентов безопасно. Мы живем во времена, когда ученые собираются взломать код в нашем мозгу! Ничто не является непроницаемым, в том числе наш мозг, по-видимому , и WordPress не является исключением. Но невозможность 100% безопасности не означает, что мы не должны идти на 99,999%.

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

Давайте начнем легко.

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

Nano-tip: Если вы собираетесь создать файл .htaccess самостоятельно, но вам трудно создать файл без имени, но с расширением .htaccess , просто загрузите пустой файл с любым именем (например, Untitled.txt ) и измените имя и расширение вашего FTP-клиента.

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

1
2
3
4
5
# protect .htaccess
<Files .htaccess>
   order allow,deny
   deny from all
</Files>

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

Далее, давайте отключим показ содержимого папок:

1
2
# disable directory browsing
Options All -Indexes

Это не позволит незнакомцам видеть содержимое ваших папок, когда они хотят получить доступ, например, myblog.com/wp-content/uploads/ . Обычно они могли видеть загруженные файлы или перемещаться по подпапкам в каталоге /uploads/ , но с помощью этого небольшого трюка они увидят 403 Forbidden ответ от сервера.

И, наконец, я хочу сослаться на отличный «черный список» от Perishable Press: черный список 5G . Этот черный список защищает ваш сайт от многих видов вредоносных действий, от вредоносных строк запросов до плохих пользовательских агентов.

Вот и все для трюков с htaccess . Теперь перейдем к трюкам wp-config.php .

С точки зрения безопасности, файл wp-config.php пожалуй, самый важный файл во всей вашей установке WordPress. И с этим можно многое сделать, чтобы укрепить свой веб-сайт.

Давайте начнем с интересного трюка: знаете ли вы, что вы можете поместить файл wp-config.php на один уровень выше в корне WordPress? Если вас это не смущает, сделайте это прямо сейчас. В большинстве случаев я устанавливаю WordPress в каталоги public_html и мне нравится помещать файл wp-config.php в корневой каталог пользователя. Не уверен, что это рецепт змеиного масла или нет, но, по крайней мере, он кажется более безопасным. Некоторые ребята из Stack Exchange провели хорошую дискуссию на эту тему .

Кстати, давайте вернемся к корневому файлу .htacccess и добавим следующие строки, чтобы запретить доступ к файлу wp-config.php :

1
2
3
4
5
# protect wpconfig.php
<files wp-config.php>
    order allow,deny
    deny from all
</files>

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

1
define( ‘DISALLOW_FILE_EDIT’, true );

Чувствуете себя еще более параноиком? Вставьте следующую строку под приведенной выше, чтобы отключить установку и удаление тем и плагинов:

1
define( ‘DISALLOW_FILE_MODS’, true );

Еще два совета по усилению WordPress: измените префикс базы данных и добавьте ключи безопасности (или соленые ключи) в файл wp-config.php .

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

1
$table_prefix = ‘wp_’;

Если для него установлено значение wp_ , вам следует изменить его на значение, отличное от значения по умолчанию. Вам не нужно будет помнить это, поэтому вы можете напечатать что угодно. Мне нравится использовать такие комбинации, как wp_fd884vg_ чтобы он был безопасным и читабельным.

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
/**#@+
 * 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.
 *
 * @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' , это означает, что они еще не установлены. В этом случае просто перейдите по этому URL (на который также есть ссылки в комментариях к коду) и измените строки, сгенерированные на этой странице, на строки выше.

Nano-tip: Если вам интересно, что это за «соленые ключи», у WPBeginner есть отличная статья о преимуществах этой меры безопасности.

Вот и все для хитрости wp-config.php ! Давайте назовем это сегодня днем.

Я надеюсь, вам понравились эти трюки .htaccess и wp-config.php сегодня. В следующей части этой мини-серии мы рассмотрим некоторые плагины безопасности и другие важные советы по усилению защиты WordPress. Если у вас есть какие-либо вопросы или комментарии, не стесняйтесь задавать их в разделе «Комментарии» ниже.

Увидимся в следующей части!