Кілька кроків для захисту WordPress

Як всім відомо, більшість сайтів піддаються злому. Захист WordPress від злому – це актуальне питання так, як на сьогоднішній день в інтернеті працюють на WordPress близько 29% сайтів, тому давайте трохи поговоримо про захист даної CMS від від спроб зламати, впровадження вірусів для розсилки спаму і про базову захист сайту на WordPress від DDOS атак.

1. Установка надійного пароля

Отримати логін адміністратора не важко, так як за замовчуванням першому користувачу надаються права адміністратора – зловмисникам і потрібно цей логін, а більшість власників сайтів використовують стандартний логін admin. Але якщо ж логін у Вас інший – досить до домену дописати ?author=1 і в адресному рядку URL перетворюється в подібне: https://yoursite.com/author/login/ де login – логін першого користувача. Після того як зловмисник дізнався логін, наступним його дією буде підбір пароля. Щоб цьому запобігти, насамперед потрібно створити нового користувача зі складним паролем і надати йому всі привілеї. Далі прибрати роль адміністратора першого користувача. Тобто, якщо зловмисник отримає доступ до аккаунту – він нічого не зможе зробити.

Використовуйте плагіни для захисту при авторизації. Щоб обмежити кількість спроб доступу використовуйте плагін Login LockDown або Limit Login Attempts. Цим самим Ви зможете блокувати IP адреса після невдалих спроб входу.

Використовуйте каптчу при авторизації за допомогою плагіна Google Captcha.

2. DOS атака за допомогою файлу load-scripts.php

Уразливість яка існує в WordPress 4.9.4 і ранніх версіях.

Існує файл wp-admin/load-scripts.php який, за задумом розробників, призначений для швидкого завантаження сайту об’єднавши кілька файлів JavaScript в один запит. На жаль файл доступний навіть анонімному користувачу який може перерахувати всі файли JavaScript подібним запитом: https://your-site.com/wp-admin/load-scripts.php?c=1&load=editor,common,user-profile,media-widgets , media-gallery … тим самим створивши навантаження на сервер що може видати статус помилки 502/503/504.

Уразливість виявив ізраїльський дослідник в області безпеки Barak Tawily, і щоб захиститися від цієї атаки він запропонував користувачам використовувати свою збірку WordPress forked version, в якій міститься фікс даної невразливості. Також, він запропонував bash-сценарій, який виправить проблему в установленому WordPress.

3. Відключення реєстрації або мінімальні привілегії користувача

Відомо що при реєстрації аккаунта зловмисник може зловмисно скористатися привілегіями і змінити записи опубліковані навіть від адміна. В налаштуваннях “Спільне” встановіть мінімальні привілеї для нових користувачів якщо реєстрація дійсно необхідна. В іншому випадку вимкніть реєстрації взагалі щоб забезпечити захист сайту.

4. Обновляйте плагін, теми і WordPress

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

Наприклад, деякі теми, як QAEngine, були уразливі на аутентифікацію. Одним запитом можна було створити користувача з правами адміністратора: http://your-site.com/wp-admin/admin-ajax.php?action=ae-sync-user&method=create&user_login=USER&user_pass=PASSWORD&role=administrator
тим самим можна було залогінитися в адмінку і мати перевагу над всім сайтом.

5. Пропишіть в .htaccess наступні правила:

Обмежити доступ до файлу

order allow, deny
deny from all

Заборонимо відстеження HTTP заголовків:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* — [F]

Заборонимо використання SQL-ін’єкцій:

RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC, OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0 — 9A-Z]{0, 2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0 — 9A-Z] {0,2})
RewriteRule ^(.*)$ index.php [F.L]

Заборонимо перегляд директорій на сервері

Options –Indexes

Не дозволяємо використовувати свої зображення іншим сайтам:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yourdomain\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

Goodhoster.NET
Додати коментар