Вирішив написати 100500 матеріал, який допоможе вам захистити сайт на WordPress від злому, але при цьому я вирішив розташувати пункти від простого до складного (бо ж рівень користувачів різний), але навіть кілька перших нескладних пунктів знизять ймовірність злому на 90% що вже більш ніж непогано, правда?
З досвіду скажу, що в переважній кількості випадків доступ до WordPress отримують або через брут логіна-пароля, або через читання файлу wp-config.php і подальшим створенням користувача в базі даних, тому зазначені нижче кроки спрямовані на протидію саме цим методам, проти заливання шелу це не особливо ускладнить задачу зловмисника, а й залишити таку дірку ще потрібно зуміти, хоча буває всяке. Поїхали!
Не ставити прості паролі та паролі, що містять логін
Начебто прописна істина і всі це знають, але переважна частка зломів зроблена через паролі
простого типу, на кшталт “admin”, “admin123”, поточний рік та інше
що містять логін, наприклад, я публікую записи під ніком “reset”, тож паролі на кшталт “reset123”, “reset2020”
Тож якщо твій пароль іменного такого виду, змінивши його просто зараз, ти відразу значно підвищиш захист WordPress від злому – я серйозно.
Видаляємо непотрібні плагіни і теми, включно із системними
Навіть якщо плагін або тема неактивна, вона продовжує бути потенційною дірою, і вже не раз були випадки, коли зламували сайти через відключений сто років тому плагін, який не оновлювався, але чомусь видалити його не піднімалася рука. Тому сміливо видаляємо, якщо що скачаєте знову.
Відключаємо xmlrpc.php
XML-RPC це такий стародавній протокол, через який можна було керувати WordPress, у 99.999% випадків це тобі не знадобиться, бо вже доволі давно існує REST API, а цей файл просто пам’ятник минулої епохи, та й фіг би з ним, але через нього можна з дикою швидкістю брутфорсити логін-пароль, тож відключаємо.
Відключити власне можна через плагін, але я плагіни не дуже люблю, оскільки це додаткове навантаження на не особливо швидкий движок, тому можна просто заблокувати через htaccess таким кодом
<Files xmlrpc.php> order deny,allow deny from all </Files>
Якщо раптом знадобиться доступ, то можна дописати перед </Files> рядок “allow from 2.2.2.2”, що відкриє доступ з IP адреси 2.2.2.2.
Або цей файл можна просто видалити, проте немає гарантій, що він не з’явиться в якомусь оновленні
Блокування або перенесення точки входу в адмінку wp-login.php
Дуже часто доступ до WordPress отримують шляхом створення додаткового користувача в базі даних або переприв’язки електронної пошти адміна (подробиці цього процесу будуть трохи нижче). Ця історія звичайно вже неприємна, але якщо перенести точку входу в адмінку, то зайти на сайт буде практично неможливо, та й брутити адмінку теж не вийде (а xmlrpc ми вже заблокували).
Якщо ви заходите в ВП з певного пулу IP адрес, то просто прикрити точку входу в адмінку в .htaccess аналогічно xmlrpc.php, залишивши потрібні, наприклад:
<Files wp-login.php> order deny,allow deny from all allow from 2.2.2.2 </Files>
Якщо ж адрес у вас багато, то все одно заносимо такий запис у htaccess (бо wp-login.php системний файл і може оновитися) і переносимо саму точку входу таким чином.
Завантажуємо файл wp-login.php
- Перейменовуємо, щоб зручно було запам’ятати, наприклад wp-new-login.php
- Відкриваємо файл і скрізь замінюємо старе входження на нове ім’я, тобто “wp-login.php” на “wp-new-login.php”
- Закачуємо назад
Ще пишуть що потрібно додати в файл functions.php хук
/* * Change WP Login file URL using "login_url" filter hook * https://developer.wordpress.org/reference/hooks/login_url/ */ add_filter( 'login_url', 'custom_login_url', PHP_INT_MAX ); function custom_login_url( $login_url ) { $login_url = site_url( 'wp-new-login.php', 'login' ); return $login_url; }
Але в мене запрацювало і без цього.
Якщо що плагін для цього теж існує :), але це не до мене.









