Захист WordPress – 12 Порад, щоб захистити ваш сайт

Last Updated on: Січень 14th, 2019Elena B. 10 Хв Читання

Введення

WordPress одна з найпопулярніших CMS в світі. Більш 18.9% всіх Інтернет сайтів працює саме на ній, а кількість установок перевищило 76.5 мільйонів. На жаль, у такої популярності є свої мінуси. Згідно з доповіддю Securi, компанії, яка спеціалізується на безпеці сайтів, WordPress сама взламываемая CMS в світі. Однак, якщо ви будете слідувати передовій практиці в цьому питанні і здійсните кілька прийомів з нашого керівництва, ви зрозумієте, що захист WordPress може бути легко укріплена за допомогою декількох простих кроків.

Зміст

  • Що вам знадобиться
  • Крок 1 – Підтримка актуальної версії WordPress
  • Крок 2 – Використання нестандартних облікових даних для входу
  • Крок 3 – Включення двоетапної перевірки
  • Крок 4 – Відключення надсилання звітів про помилки PHP
  • Крок 5 – Не використовуйте nulled шаблони для WordPress
  • Крок 6 – Сканування WordPress на наявність шкідливих програм
  • Крок 7 – Перенесення сайту на більш безпечний хостинг
  • Крок 8 – Робіть резервне копіювання даних настільки часто, наскільки це можливо
  • Крок 9 – Вимикання редагування файлів
  • Крок 10 – Видалення шаблонів і плагінів
  • Крок 11 – Використання .htaccess для поліпшення захисту WordPress
  • Крок 12 – Зміна стандартних префіксів бази даних WordPress для запобігання впровадження SQL-коду
  • Висновок

Що вам знадобиться

Перед тим, як ми почнемо це керівництво, перевірте наявність наступного:

  • Доступ до панелі управління WordPress
  • Доступ до вашого облікового запису на хостингу (необов’язково)

Крок 1 – Підтримка актуальної версії WordPress

Це стане першим і найважливішим кроком для поліпшення безпеки WordPress. Якщо вам потрібен чистий сайт без шкідливих програм, ви повинні переконатися в тому, що версія вашого WordPress актуальна. Можливо ця порада виглядає простим, однак, тільки 22% всіх установок WordPress припадає на останню версію.

WordPress реалізував функцію автоматичного оновлення версії 3.7, але працює вона тільки для невеликих оновлень безпеки. Тоді як великі, ключові оновлення повинні бути встановлені вручну.

У разі, якщо ви не знаєте, як оновити WordPress, загляньте сюди.

Крок 2 – Використання нестандартних облікових даних для входу

Ви використовуєте admin, як ім’я адміністратора в WordPress? Якщо ваша відповідь так, то ви серйозно знижуєте захист WordPress і спрощуєте процес злому хакерами вашій панелі керування. Суворо рекомендується змінити ім’я користувача адміністратора на що-небудь інше (подивіться це керівництво, якщо ви не впевнені, як це зробити) або створіть новий обліковий запис адміністратора з іншими даними. Дотримуйтесь цих кроків, якщо ви віддаєте перевагу другий варіант:

  • Увійдіть в панель управління WordPress
  • Знайдіть розділ Користувачі та натисніть кнопку ” Додати нового.
  • Створіть нового користувача і призначте йому права Адміністратора
  • Перезайдите в WordPress з вашими новими даними.
  • Поверніться до розділу Користувачі і видаліть стандартний обліковий запис Admin.
  • Хороший пароль відіграє ключову роль у безпеці WordPress. Набагато складніше зламати пароль складається з цифр, літер нижнього і верхнього регістру і спеціальних знаків. Такі інструменти, як LastPass і 1Password можуть допомогти у створенні та управлінні складними паролями.

    Крок 3 – Включення двоетапної перевірки

    Двохетапна аутентифікація додає додатковий шар захисту для вашої сторінки авторизації. Після підтвердження імені користувача, вона додає ще один етап, який необхідно завершити для успішної авторизації. Швидше за все ви вже використовуєте це для доступу до пошти, онлайн банку та інших облікових записів, що містять конфіденційну інформацію. Чому б не використати це і в WordPress?

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

    Крок 4 – Відключення надсилання звітів про помилки PHP

    Звіти про помилки PHP можуть бути досить корисні, якщо ви займаєтеся розробкою сайту і хочете упевнитися, що все працює правильно. Однак показувати помилки всім, це серйозне упущення в безпеці WordPress.

    Ви повинні виправити це, як можна швидше. Не лякайтеся, вам не потрібно бути програмістом, щоб відключити звіт про помилки PHP на WordPress. Більшість провайдерів послуг хостингу надають таку опцію в панелі управління. Якщо немає, то просто додайте наступні рядки в файл wp-config.php. Ви можете використовувати FTP-клієнт або Файловий менеджер для редагування файлу wp-config.php.

    error_reporting(0);
    @ini_set(‘display_errors’, 0);

    От і все. Звіти про помилки відключені.

    Крок 5 – Не використовуйте nulled шаблони для WordPress

    Запам’ятайте “Безкоштовний сир буває тільки в мишоловці”. Це ж стосується nulled шаблонів і плагінів.

    По всьому Інтернету існує тисячі nulled плагінів і шаблонів. Користувачі можуть безкоштовно їх скачати, використовуючи різні файлообмінники або торрент файли. Вони не знають, що більшість з них заражені шкідливими програмами або посиланнями чорних методів пошукової оптимізації.

    Перестаньте використовувати nulled плагіни і шаблони. Це не тільки неетично, але і завдає шкоди вашій безпеки WordPress. Зрештою, ви більше заплатите розробнику за очищення вашого сайту.

    Крок 6 – Сканування WordPress на наявність шкідливих програм

    Щоб заразити WordPress, хакери часто використовують дірки в шаблонах або плагінах. Тому, важливо частіше проводити перевірку вашого блогу. Існує безліч добре написаних плагінів для цих цілей. WordFence виділяється з цієї множини. Він пропонує керівництво по застосуванню і можливість автоматичної перевірки, разом з купою інших різних налаштувань. Ви навіть можете відновити модифіковані/заражені файли в пару кліків. Поширюється він на безкоштовній основі. Цих фактів має бути достатньо, щоб ви встановили його прямо зараз.

    Інші популярні плагіни для посилення безпеки WordPress:

    • BulletProof Security – на відміну від WordFence, про який ми говорили раніше, BulletProof не сканує ваші файли, але він надає вам фаєрвол, захист бази даних і т. д. Відмітною особливістю є можливість настройки і установки плагіна в кілька кліків миші.
    • Sucuri Security – цей плагін захистить вас від DDOS атак, містить чорний список, сканує ваш сайт на наявність шкідливих програм і керує вашим фаєрволом. При виявленні чого-небудь. ви будете сповіщені через електронну пошту. Google, Bitdefender, McAfee – в цей плагін включені всі чорні списки з цих програм. Ви можете знайти повне керівництво про встановлення плагінів для сайту WordPress тут.

    Крок 7 – Перенесення сайту на більш безпечний хостинг

    Можливо, ця порада може здатися дивним, але статистика показує, що понад 40% сайтів на WordPress були зламані із-за дірок в безпеці хостинг-акаунта. Ця статистика повинна підштовхнути вас перенести WordPress на більш безпечний хостинг. Трохи ключових фактів які необхідно тримати в голові при виборі нового хостингу:

    • Якщо це віртуальний хостинг, переконайтеся, що ваш обліковий запис ізольована від інших користувачів, і немає ризику зараження від інших сайтів на сервері.
    • На хостингу присутня функція автоматичного бекапа (резервного копіювання).
    • Сервер має двосторонній фаєрвол і інструмент для сканування.

    Крок 8 – Робіть резервне копіювання даних настільки часто, наскільки це можливо

    Навіть найбільші сайти зламуються кожен день, незважаючи на той факт, що їх власники витрачають тисячі на поліпшення безпеки WordPress.

    Якщо ви прямуєте передовій практиці в цьому питанні і застосували поради з цієї статті, вам все одно необхідно регулярно робити резервне копіювання вашого сайту.

    Існує кілька шляхів для створення бекапа. Наприклад, ви можете вручну завантажити файли сайту і експортувати базу даних, або скористатися інструментами, пропонованими вашої хостингової компанією. Ще один шлях, використовувати WordPress плагіни. Найпопулярніші з них:

    • VaultPress
    • BackUpWordPress
    • BackupGuard

    Ви навіть можете автоматизувати процес створення і зберігання бекапів WordPress бекапи в Dropbox.

    Крок 9 – Вимикання редагування файлів

    Як ви напевно знаєте, WordPress має вбудований редактор, який дозволяє редагувати PHP файли. Ця функція настільки ж корисна, наскільки вона може завдати шкоди. Якщо хакери отримають доступ до вашої панелі керування, перша річ, на яку вони звернуть увагу, це Редактор Файлів. Деякі користувачі WordPress воліють повністю вимкнути цю функцію. Вона може бути виключена редагуванням файлу wp-config.php шляхом додавання туди наступного коду:

    define( ‘DISALLOW_FILE_EDIT’, true );

    Це все, що вам потрібно для відключення цієї функції в WordPress.

    ВАЖЛИВО! У разі, якщо ви хочете повторно включити цю функцію, використовуйте FTP клієнт або Файловий менеджер вашого хостингу і видаліть цей код з файлу wp-config.php.

    Крок 10 – Видалення шаблонів і плагінів

    Зробіть прибирання вашого сайту на WordPress і видалити невикористовувані шаблони та плагіни. Хакери часто використовують відключені і застарілі шаблони та плагіни (навіть офіційні плагіни WordPress) для отримання доступу до вашої панелі управління, або завантаження шкідливого вмісту на ваш сервер. Видаляючи плагіни і шаблони, які ви перестали використовувати (і можливо забули оновити) давним давно, ви знижуєте ризики і робите ваш сайт на WordPress більш безпечним.

    Крок 11 – Використання .htaccess для поліпшення захисту WordPress

    .htaccess файл необхідний для коректної роботи посилань WordPress. Без правильних записів у файлі .htaccess, ви будете отримувати багато помилок 404.

    Не так багато користувачів знають, що .htaccess може бути використаний для поліпшення захисту WordPress. Наприклад, ви можете блокувати доступ або відключати виконання PHP в певних папках. Внизу наведено приклади того, як ви можете використовувати .htaccess для поліпшення безпеки сайту на WordPress.

    ВАЖЛИВО! Перед тим, як ви зробите зміни у файлі, зробіть резервне копіювання старого файлу .htaccess. Для цього ви можете використовувати FTP клієнт або Файловий менеджер.

    Заборона доступу до адміністративної частини WordPress

    Код нижче дозволить вам отримувати доступ до адміністративної частини WordPress тільки з певних IP.

    AuthUserFile /dev/null
    AuthGroupFile /dev/null
    AuthName “WordPress Admin Access Control”
    AuthType Basic
    <LIMIT GET>
    order deny,allow
    deny from all
    allow from xx.xx.xx.xxx
    allow from xx.xx.xx.xxx
    </LIMIT>

    Зауважте, що вам потрібно змінити XX.XX.XX.XXX на ваш IP адреса. Ви можете використовувати цей сайт для перевірки вашого теперішнього IP. Якщо ви використовуєте більше ніж одне підключення для управління сайтом на WordPress, то переконайтеся, що написали інші IP адреси (додавайте стільки адрес, скільки вам знадобиться). Не рекомендується використовувати цей код, якщо у вас динамічний IP-адресу.

    Відключення виконання PHP в певних папках

    Хакери люблять завантажувати бекдор скрипти в папку завантажень WordPress. За замовчуванням ця папка використовується лише для зберігання медіафайлів. Отже, не повинна містити будь-яких PHP файлів. Ви можете легко відключити виконання PHP, створивши новий файл .htaccess в /wp-content/uploads/ з такими правилами:

    <Files *.php>
    deny from all
    </Files>

    Захист файлу wp-config.php

    Файл wp-config.php містить ядро налаштувань WordPress і деталі бази даних MySQL. Отже, це самий важливий файл в WordPress. Тому він найчастіше стає головною метою WordPress хакерів. Однак ви можете легко убезпечити його використовуючи наступні правила .htaccess:

    <files wp-config.php>
    order allow,deny
    deny from all
    </files>

    Крок 12 – Зміна стандартних префіксів бази даних WordPress для запобігання впровадження SQL-коду

    База даних WordPress містить і зберігає в собі всю ключову інформацію необхідну для роботи вашого сайту. В результаті, вона стає ще однією метою хакерів і спамерів, які виконують автоматизований код для проведення впровадження SQL-коду. Під час установки WordPress, багато людей не обтяжують себе зміною стандартного префікса бази даних wp_. Згідно з даними WordFence, 1 з 5 зломів WordPress пов’язаний з впровадженням SQL-коду. Так як wp_ це одне із стандартних значень, спершу хакери починають саме з нього. На даному етапі ми коротко розглянемо, як захистити сайт на WordPress від подібного роду атак.

    Зміна таблиці префіксів для існуючого сайту на WordPress

    ВАЖЛИВО! Головне-це безпека! Перед початком, переконайтеся, що зробили бекап бази даних MySQL.

    Частина перша – Зміна префікса в wp-config.php

    Знайдіть ваш файл wp-config.php використовуючи FTP клієнт або Файловий менеджер знайдіть рядок зі значенням $table_prefix.

    Можете додати додаткові цифри, букви або символи підкреслення. Після цього збережіть зміни і перейдіть до наступного етапу, В цьому керівництві ми використовуємо wp_1secure1_, як новий префікс таблиці.

    Поки ви перебуваєте у вашому файлі wp-config.php також знайдіть ім’я вашої бази даних, щоб знати яку саме змінити. Пошукайте в секції define(‘DB_NAME’.

    Частина друга – Оновлення всіх таблиць бази даних

    Зараз вам потрібно оновити всі записи в вашій базі даних. Це може бути зроблено за допомогою phpMyAdmin.

     

    Знайдіть базу даних визначену в першій частині і увійдіть в неї.

    За замовчуванням, установка WordPress має 12 таблиць і кожна повинна бути оновлена. Однак це можна зробити швидше, використовуючи розділ SQL в phpMyAdmin.

    Змінювати кожну таблицю вручну займе дуже багато часу, тому ми використовуємо SQL запити, щоб прискорити процес. Використовуйте наступний синтаксис для оновлення всіх таблиць у вашій базі даних:

    RENAME table `wp_commentmeta` TO `wp_1secure1_commentmeta`;
    RENAME table `wp_comments` TO `wp_1secure1_comments`;
    RENAME table `wp_links` TO `wp_1secure1_links`;
    RENAME table `wp_options` TO `wp_1secure1_options`;
    RENAME table `wp_postmeta` TO `wp_1secure1_postmeta`;
    RENAME table `wp_posts` TO `wp_1secure1_posts`;
    RENAME table `wp_terms` TO `wp_1secure1_terms`;
    RENAME table `wp_termmeta` TO `wp_1secure1_termmeta`;
    RENAME table `wp_term_relationships` TO `wp_1secure1_term_relationships`;
    RENAME table `wp_term_taxonomy` TO `wp_1secure1_term_taxonomy`;
    RENAME table `wp_usermeta` TO `wp_1secure1_usermeta`;
    RENAME table `wp_users` TO `wp_1secure1_users`;

    Деякі шаблони WordPress або плагіни можуть додавати додаткові таблиці в базу даних. У випадку якщо у вас більше 12 таблиць в базі даних MySQL, додайте решту з них вручну в SQL-запит і виконайте його.

    Частина третя – Перевірка опцій і користувальницьких таблиць метаданих

    В залежності від кількості плагінів які ви встановили, що деякі значення в вашій базі даних повинні бути оновлені вручну. Зробити це можна виконавши окремі SQL запити на таблицю опцій і метаданих.

    Для таблиці опцій, ви повинні використовувати:

    SELECT * FROM `wp_1secure1_options` WHERE `назва_параметра` LIKE `%wp_%`

    Для таблиці метаданих, ви повинні використовувати:

    SELECT * FROM `wp_1secure1_usermeta` WHERE `meta_key` LIKE `%wp_%`

    Коли ви отримаєте результати запиту, просто оновіть всі значення з wp_ на ваш новий налаштований префікс. В таблиці метаданих користувача вам потрібно відредагувати поле meta_key, тоді як для опцій, необхідно змінити значення назва_параметра.

    Забезпечення безпечності нових установок WordPress

    Якщо ви плануєте встановлювати нові сайти WordPress, вам немає потреби знову виконувати даний процес. Ви легко зможете поміняти префікс таблиць WordPress в процесі установки:

    Вітаємо! Ви успішно поліпшили безпеку вашої бази даних від впровадження SQL-коду.

    Висновок

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