10 хаків безпеки для WordPress, які допоможуть вам запобігти злому

11

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

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

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

Ознайомтеся з основами

Хоча ви можете думати, що деякі з цих елементів є само собою зрозумілими, просто подумайте, скільки разів ви бачили не лише клієнтів, але й колег-розробників, дизайнерів та агентства, які повинні знати, що винні в деяких із них?

Почніть із того, що ваші паролі буде важко вгадати. Як ви можете зробити це важким для них, але легким для вас? Можливо, ви можете забути про хитромудрі заміни літер, такі як «h3ll0», змішування регістрів і додавання розділових знаків, і замість цього використати мнемоніку. З'єднавши три-чотири слова разом у кумедне зображення, ваш пароль буде набагато легше запам’ятати, ніж «t3r%?9.Fq!G», і на порядки важче зламати. Тільки не використовуйте «CorrectHorseBatteryStaple». Щоб отримати повне та смішне пояснення цього принципу, перегляньте XKCD 936.

Ви також повинні постійно оновлювати свої плагіни та ядро ​​WordPress. Тепер це легше зробити з пізнішими версіями WordPress. Починаючи з WordPress 3.7, ви можете налаштувати чотири типи автоматичних оновлень: основні файли, плагіни, теми та файли перекладу. Застереження: залежно від ваших налаштувань ви можете вимкнути деякі з них, щоб мати можливість перевірити перед розгортанням оновлень. Хоча навіть якщо ви залишите їх активними та виникнуть проблеми, у вас все одно є щоденні резервні копії, на які можна покластися, чи не так?

Полегшіть керування кількома сайтами, плагінами та резервними копіями за допомогою чогось на зразок InfiniteWP. Основні функції безкоштовні!

Це не ті облікові дані, які ви шукаєте

Окрім високої надійності пароля, вам також слід перемістити URL-адресу адміністратора за замовчуванням і використовувати щось інше, ніж «admin», як ім’я користувача. Якщо хакери не мають на увазі конкретної мети, вони зазвичай намагаються запустити ботів для автоматизації процесу. Ці боти шукають WordPress, пробують налаштування за замовчуванням і найпоширеніші паролі – тому давайте відійдемо від стандартних значень, щоб ускладнити це завдання.

Мабуть, найпростіший спосіб змінити URL-адресу для входу — переглянути такі плагіни, як HC Custom WP-Admin URL. Звичайно, спочатку запустіть резервну копію!

Щоб змінити ім’я користувача адміністратора, найпростішим способом є створення нового користувача адміністратора з вибраним іменем користувача та видалення старого. Якщо ви втратили доступ до адміністратора через те, що не пам’ятаєте своє ім’я користувача, вам знадобиться трохи радикальніше рішення. Увійдіть у phpMyAdmin і завантажте свою базу даних WordPress. Прокрутіть ліворуч вниз і знайдіть таблицю «ks29so_users». Знайдіть ім’я користувача, яке ви хотіли змінити, тобто «admin», і відредагуйте значення user_login, щоб воно було вашим новим іменем.

Останнє слово про процес входу

Перш ніж ми відійдемо від процесу входу, потрібно виконати ще кілька завдань. Пам'ятаєте тих ботів, які вгадують паролі? Давайте ускладнимо для них завдання, сказавши, що ви можете зробити стільки спроб протягом певного періоду часу, і що перед тим, як це зробити, ви повинні правильно розшифрувати CAPTCHA. Для Captcha ви можете спробувати встановити цей плагін і йти. Додаткова перевага – преміум-версія інтегрується з BuddyPress і Contact Form 7, щоб захистити ваші контактні форми від спаму.

Щоб обмежити спроби входу, ви можете додати такі плагіни, як «Обмежити спроби входу», або ви можете запитати свого хостинг-провайдера, який може мати рішення – наприклад, у Wpengine це налаштовано за замовчуванням.

Захист WordPress за допомогою змін у .htaccess

Сподіваюся, ви готові трохи забруднити руки, оскільки ми переходимо до пропозицій, трохи складніших, ніж «встановлення плагіна»! Додайте ці пропозиції після рядка #END WORDPRESS.

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

<Files wp-config.php>
orderallow,deny
deny from all
</Files>

Це чудовий початок, що ще ми можемо зробити? Ну, ми можемо заборонити допитливим людям переглядати ваші файли та папки – я думаю, переваги цього досить зрозумілі!

Нижче наведено комбінезон для блокування перегляду каталогу:

# directory browsing
Options All -Indexes

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

<Files "private.php">
Order allow,deny
Deny from all
</Files>

Зараз ми починаємо досягати прогресу – видаляємо доступ для тих, кому він не потрібен. Щоб довести це до логічного завершення, давайте подивимося, як ми можемо заборонити комусь, кого ми знаємо як поганого актора, отримати доступ до будь-чого на вашому сервері.

Коли ви дізнаєтеся IP-адресу, просто додайте ці рядки, замінивши 127.0.0.1 на неправильну IP-адресу:

Order Deny,Allow
Deny from 127.0.0.1

Щоб оновити це новими IP-адресами, просто додайте нові рядки "відмовити". Якщо вам потрібно заблокувати весь діапазон, просто виключіть відповідний діапазон. Іншими словами, щоб заблокувати все від 127.0.0.0 до 127.0.0.255, ви повинні додати:

Deny from 127.0.0.

Остання порада в цьому розділі — захистити сам .htaccess. Є досить багато сайтів, які поширюють методи, які є хорошими, але не чудовими. Наступний метод люб’язно надано Джеффом Старром у Perishable Press і є набагато більш ретельним:

# STRONG HTACCESS PROTECTION
<Files ~ "^.*.([Hh][Tt][Aa])">
 order allow,deny
 deny from all
 satisfy all
</Files>
Покращення бази даних

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

Спочатку ми повідомимо wp-config.php, що ми змінюємо префікс таблиці. Відкрийте цей файл і відредагуйте наступне:

$table_prefix = 'ks29so_’;

Додайте кілька цифр або букв:

$table_prefix = ‘ks29so_3drt5_’;

Потім вам потрібно пройти та змінити кожну з імен таблиць у вашій базі даних. Для кожної з ваших 11 таблиць виконайте команду в такій формі:

RENAME TABLE ‘ks29so_commentmeta‘ TO ‘ks29so_3drt5_commentmeta‘;

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

SELECT * FROM ` ks29so_3drt5_options` WHERE `option_name` LIKE'%ks29so_%'

На жаль, вам потрібно буде пройти кожен із них і оновити.

Потім нам потрібно переглянути таблицю UserMeta, той самий процес, що й раніше:

SELECT * FROM ` ks29so_3drt5_usermeta` WHERE `meta_key` LIKE'%ks29so_%'

Нарешті, ви також можете обмежити користувача вашої бази даних MySQL лише такими привілеями читання та запису: ВИБІР, ВСТАВЛЕННЯ, ОНОВЛЕННЯ та ВИДАЛЕННЯ. Таким чином, ви можете відкликати привілеї для структури бази даних і адміністратора: DROP, ALTER і GRANT. Однак це може ускладнити оновлення ядра та додавання нових плагінів, оскільки їм може справді знадобитися змінити структуру бази даних. Якщо ви підете цим шляхом, ви повинні ретельно поставитися до резервного копіювання та тестування.

Будь ласка, нові ключі

Ваші секретні ключі зберігаються в wp-config.php. Однак вони не такі вже й секретні, якщо залишити їх значеннями за замовчуванням! Покращте свою безпеку, змінивши їх – однак я рекомендую вам не покладатися на власне відчуття випадковості та складності. Використовуйте щось на кшталт цієї служби – вона не лише визначає ключі для вас, але й робить їх усі одночасно у правильному форматі, щоб ви могли вставити їх безпосередньо у свій файл. Натискання кнопки «Оновити» демонструє, що ви отримуєте новий набір ключів кожного разу, коли завантажуєте це.

Оригінальне джерело рецепта

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

Весняне прибирання

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

Таким же чином видаліть усі непотрібні логіни. Можливо, ви довіряєте своїм колишнім співробітникам, і це добре, але справа не в довірі. Йдеться також про зменшення доступної зони атаки, де це можливо, обмежуючи людей до мінімального рівня доступу, який їм потрібен. Зазвичай колишньому співробітнику чи автору доступ не потрібен – я впевнений, що вони зрозуміють!

Застосовується політика входу – дозволити лише IP-адресу довіреного адміністратора

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

orderdeny,allow
allow from 127.0.0.1
deny from all

(знову замініть 127.0.0.1 на свій IP).

SSL

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

Однак, якщо потрібно, ви можете принаймні запропонувати собі трохи більше захисту, увімкнувши SSL. Спочатку переконайтеся, що ваш сервер підтримує це, а потім відкрийте файл wp-config.php і додайте такий рядок:

define('FORCE_SSL_ADMIN', true);
Інші речі, на які варто подивитися

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

Моєю останньою важливою порадою, однак, буде резервне копіювання. Уся ця стаття ґрунтується на ідеї, що краще запобігти, ніж лікувати, але регулярні, зручні, перевірені резервні копії повинні бути на той випадок, якщо вони вам знадобляться. Дозвольте мені підкреслити як звичайну, так і перевірену – резервна копія річної давнини, по суті, не є резервною для більшості сайтів, які за цей час значно зросли. Якщо резервні копії не перевірені, у вас немає резервної копії. Ви справді не хочете дійти до моменту, коли потрібна резервна копія, і вам просто потрібно схрестити пальці та сподіватися, що це спрацює!

Що ви зробили для захисту свого веб-сайту WordPress? Де ви проводите межу між безпекою та доступністю/зручністю використання? Дайте мені знати в коментарях.

Джерело запису: instantshift.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі