Про безпеку блогу на WordPress

Безпека WordPress

Безпека Вашого блогу – запорука його надійної та безперебійної роботи. Жоден сайт не є на 100% захищеним від зловмисників, і завжди може знайтися спец, який виявить слабке місце Вашого сайту, тому потрібно зробити Ваш сайт по максимуму захищеним. Адже чим більше перепон – тим важче їх всіх здолати.

У сьогоднішній статті будуть розглянуті способи підвищення безпеки блогу на WordPress в плані захисту його від злому.

    1. Регулярно робіть бекапи

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

    Повний бекап блогу на WordPress складається із 1) бази даних та 2) файлів, розміщених на хостингу.

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

    Для Вордпресу є хороший плагін WP-DB-Backup, який може регулярно надсилати копію бази даних MySQL на Ваш e-mail. Раджу ним скористатися.

    2. Регулярно оновляйте системні файли та плагіни

    В оновлених версіях системних файлів та плагінів часто містяться виправлення помилок, пов’язаних із безпекою блогу.

    Але не забувайте – якщо Ви перед цим вносили якісь зміни до системних файлів – їх потрібно буде внести повторно, оскільки процес оновлення заміняє старі системні файли новими. Тому раджу десь записувати, які системні файли Вордпресу Ви змінювали і які саме зміни робити.

    3. Змініть логін адміністратора

    Традиційно логін адміністратора такий – admin. Зловмисникам це добре відомо, тому в такому випадку їм легше буде отримати адміністративний доступ до Вашого блогу. Починаючи з 3-ї версії WordPress логін адміністратора можна вибрати при установці, як я писав у статті про установку Вордпресу.

    Але якщо Ви цього не зробили, то логін можна змінити і пізніше, внісши деякі зміни до бази даних MySQL. Для цього у phpMyAdmin виконайте команду

    UPDATE wp_users SET user_login='admin', user_login='новий логін';

    Якщо Ви відчуваєте труднощі при роботі з phpMyAdmin, то тоді можна скористатись спеціальним плагіном Username Changer.

    У випадку, якщо блог вже досить розвинений, наповнений інформацією, логін admin потрібно замінити у багатьох місцях бази даних. Для цього раджу зробити бекап бази даних собі на комп’ютер, відкрити її у текстовому редакторі (наприклад, Notepad2), виконати пошук-заміну слова admin на новий логін, зберегти базу даних та завантажити її назад на хостинг.

    Також бажано, щоб Ви не користувалися даним логіном для написання статей на блозі – для цього раджу створити собі окремий обліковий запис з обмеженими правами (тільки публікація статей).

    4. Встановіть надійний пароль для адміністратора

    Банально, але наявність простого паролю несе загрозу безпеці блогу. Не використовуйте у паролі свою дату народження чи номер телефону. Використовуйте складний буквенно-цифровий пароль на 10 чи більше знаків, тоді його важко буде підібрати.

    5. Приховайте версію CMS WordPress

    Відображення версії Вордпресу – ще одне слабке місце в плані безпеки. Для нормальної роботи блогу відображення даної інформації взагалі не потрібне. Тому найкраще її приховувати або виводити хибне значення.

    Найперше, знайдіть рядок відображення версії WordPress у файлі header.php:

    <meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />

    та видаліть з нього код <?php bloginfo('version'); ?>

    Далі додайте наступний код у файл шаблону functions.php: <?php remove_action('wp_head', 'wp_generator'); ?>

    Знайдіть у папці wp-includes файл version.php, а в ньому рядок такого виду: $wp_version = '3.0.5'; та замініть у ньому код версії на якийсь інший, наприклад 3.0.5 на 10.5.3. Ще раджу видалити файли readme.html та license.txt з кореневої папки блогу.

    6. Не користуйтесь FTP

    Користування FTP для вивантаження файлів на сервер – також одне із слабких місць у безпеці Вашого блогу. Якщо Ваш хостер підтримує захищене FTP-з’єднання чи надає SSH доступ – бажано користуватись ними.

    У випадку якщо Ви користуєтесь SSH, можна взагалі заборонити доступ до сайту по FTP. Для цього в кореневій папці сайту створіть файл .ftpaccess і внесіть до нього наступні рядки:

    <Limit ALL>
    Deny from all
    </Limit>

    Якщо ж використання FTP – єдиний можливий вихід для Вам, тоді ніколи не зберігайте паролі в FTP-клієнті і при можливості обмежте доступ до FTP-клієнта за допомогою мастер-паролю. Знаю, що таку можливість підтримує програма CuteFTP Professional.

    7. Забороніть реєстрацію користувачів на блозі

    Подумайте, чи конче відвідувачам Вашого блогу реєструватись на ньому? Адже коментувати на блозі можна і без реєстрації.

    Справа в тому, що WordPress використовує єдину адмін-панель для всіх – і адміністратора, і користувачів. Саме в цьому слабке місце в безпеці блогу. Тому якщо модель функціонування блогу не передбачає обов’язкової реєстрації – забороніть її в налаштуваннях WordPress, цим Ви значно зменшите ймовірність злому.

    8. Обмежте доступ до папки wp-admin

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

    Для цього створіть файл .htaccess та помістіть його у папку wp-admin/. Даний файл повинен містити наступні рядки:

    AuthUserFile /dev/null
    AuthGroupFile /dev/null
    AuthName 'Access Control'
    AuthType Basic
    order deny,allow
    deny from all
    allow from 123.456.78.90

    Замість 123.456.78.90 пропишіть Ваш IP-адрес. У випадку, якщо IP динамічний, можна прописати маску, наприклад 123.456.78, в цьому випадку доступ до адмінки буде відкритий лише з мережі Вашого Інтернет-провайдера.

    9. Відключіть повідомлення про помилки авторизації

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

    Відключити повідомлення про помилки авторизації можна відредагувавши файл functions.php, який знаходиться у папці шаблону блогу або через адмінку Вордпресу (Редактор дизайну). Додайте до цього файлу наступний рядок:

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

    10. Плагін Login LockDown

    Якщо на блозі передбачена вільна реєстрація користувачів та їх доступ до адмінки, тоді раджу користуватись плагіном Login LockDown, який можна завантажити звідси: http://wordpress.org/extend/plugins/login-lockdown/. Даний плагін записує всі невдалі спроби доступу до адмінки блогу (включаючи час та IP), а також блокує доступ до адмінки після певної кількості невдалих спроб упродовж визначеного періоду часу (можна задати в налаштуваннях плагіну).

    11. Змініть префікс бази даних MySQL

    По замовчуванню таблиці бази даних MySQL мають префікс wp_. Раджу змінити даний префікс на якийсь інший (наприклад pre_) за допомогою phpMyAdmin або банальним методом пошуку-заміни по базі даних, або ж за допомогою плагіну WP Security Scan (див.нижче). Пам’ятайте, що префікс має закінчуватись символом «_».

    12. Захистіть файл wp-config.php

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

    Рекомендується виставити на нього права доступу chmod 750.

    Є ще один цікавий спосіб захисту даного файлу (працює не на всіх хостингах). Можна перемістити на хостингу файл wp-config.php у папку на один рівень вище. Наприклад, якщо файли блогу завантажені у папку myblog.com.ua/public_html/, перемістіть wp-config.php у папку myblog.com.ua/. WordPress вміє шукати даний файл у папці вищого рівня.

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

    Це можна зробити таким чином: у файл .htaccess в кореневій папці Вашого блогу додайте код: Options –Indexes

    Також можна створити порожній файл index.html та вивантажити його як мінімум в папки wp-content/plugins та wp-content/uploads.

    14. Права доступу до папок та файлів

    З метою підвищення безпеки блогу на папки виставте права chmod 755, окрім папок cache/ і uploads/ - на них мають бути права 777.

    На всі файли виставте права 644. На файл .htaccess в корні блогу бажано виставити права 444, а на файли теми 666 (щоб обмежити зовнішній доступ до них).

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

    15. Плагін WP Antivirus

    Даний плагін час від часу перевіряє файли шаблону на шкідливий код, і якщо виявляє щось підозріле – одразу ж повідомляє про це по e-mail. У повідомленні також буде міститись інформація, в кому файлі та якому рядку виявлено шкідливий код, що значно полегшує його пошук.

    Завантажити даний плагін можна звідси.

    16. Плагіни WP Security Scan та Secure WordPress

    Більшість з розглянутого вище можна зробити за допомогою плагінів WP Security Scan чи Secure WordPress .

    Якщо Ви поки не дуже впевнений користувач WordPress та phpMyAdmin – тоді раджу користуватись якимось із цих плагінів. Особливості роботи з одним із них я розгляну в одному із наступних постів.

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

Бажаю Вам безпечної роботи з WordPress і до зустрічі!

Коментарі тимчасово вимкнені / Комментарии временно отключены