Допълнителна защита на WordPress: права, wp-config и .htaccess
Актуализациите, силната парола и двуфакторното удостоверяване са основата на сигурния WordPress сайт. Укрепването (hardening) надгражда тази основа: настройвате сайта така, че пробив в сигурността или превзет акаунт да могат да причинят по-малко щети. Тук ще прочетете кои са тези настройки и как да ги приложите във Вашия хостинг пакет.
Какво вече се случва на сървъра
Част от защитата вече е осигурена на нашите сървъри. xmlrpc.php е затворен по подразбиране (WordPress: няма достъп до xmlrpc.php), опасните PHP функции са изключени (PHP сигурност: изключени функции), а освен това работят защитна стена за уеб трафика и скенер за malware. Вижте Защитна стена за уеб приложения (WAF) и Imunify360: сканиране на Вашия уебсайт за malware. Стъпките по-долу изпълнявате сами, във Вашия собствен сайт.
Всички файлове редактирате в DirectAdmin чрез File Manager. Файловете, чието име започва с точка, като .htaccess, се виждат едва след като включите показването на скритите файлове: вижте Показване и редактиране на скрити файлове като .htaccess. Първо направете копие на всеки файл и поставете това копие извън public_html.
1. Без редактиране на код от администрацията
Отворете wp-config.php в domains/example.com/public_html и поставете този ред над реда със „спрете редактирането“ (That's all, stop editing!):
define( 'DISALLOW_FILE_EDIT', true );
Така редакторите за файловете на темите и плъгините изчезват от администрацията. Който превземе администраторски акаунт, не може с няколко клика да вмъкне зловреден код във Вашата тема. Инсталирането и актуализирането на плъгини продължава да работи нормално. В същия файл задайте WP_DEBUG на false, за да не се показват никога съобщения за грешки на екрана на посетителите.
2. Без PHP в папката uploads
В wp-content/uploads трябва да има изображения и документи, а не PHP. Нападател, който чрез пробив в сигурността може да качи файл, ще се опита да постави PHP файл точно там и да го извика. Създайте в wp-content/uploads файл .htaccess със следното съдържание:
<Files *.php> Require all denied </Files>
След това проверете дали Вашият сайт, формулярите и медийната библиотека все още работят.
3. Без списък на папките
Ако в дадена папка няма index.php или index.html, уеб сървърът може да покаже списък на всички файлове в нея. Поставете най-горе във файла .htaccess в public_html:
Options -Indexes
Можете да тествате, като отворите папка без индексен файл, например https://example.com/wp-content/uploads/. Трябва да видите страница за грешка (403 или 404), а не списък.
4. Права на файловете и папките
| Какво | Права |
|---|---|
| Папки | 755 |
| Файлове | 644 |
wp-config.php | По-строги: 600 или 640. Опитайте с 600 и проверете дали сайтът Ви все още работи. |
Никога не използвайте 777: така всеки на сървъра може да записва в тази папка. Ако дадено ръководство твърди, че това е необходимо, за да работи качването на файлове, причината за проблема е другаде. Промяна на правата: вижте Права на файлове и папки (chmod).
5. Без остатъчни файлове в уеб папката
Всичко в public_html може да бъде отворено през уеб. Затова почистете:
- копия на
wp-config.php, катоwp-config.php.bakилиwp-config.old. Те съдържат паролата за Вашата база данни и се изпращат като обикновен текст; - резервни копия като
backup.zipилиdatabase.sql; - папка
.git, оставена от разработчик; wp-content/debug.log;- тестови файлове като
info.phpсphpinfo().
Ако искате да направите отделен файл недостъпен, вижте Блокиране на файлове чрез .htaccess.
6. Headers и вход
- Security headers указват на браузъра как да се отнася към Вашия сайт. Вижте HSTS и security headers за Вашия уебсайт.
- Страницата за вход можете да ограничите до Вашия собствен IP адрес чрез Защита на wp-login.php в WordPress.
- Двуфакторно удостоверяване за администраторите: вижте Настройване на двуфакторно удостоверяване за WordPress.
Скриването на версията на WordPress е почистване, а не защита: програмите за атаки просто изпробват пробива. Само актуализирането затваря пробива.
А плъгин за сигурност?
Плъгинът за сигурност често съчетава защитна стена, скенер и защита на входа. Защитната стена в плъгин започва да работи едва когато WordPress вече е стартиран; защитната стена на сървъра спира заявките по-рано. Следователно плъгинът е допълнение, най-вече за двуфакторно удостоверяване и ограничаване на опитите за вход. Използвайте най-много един: два плъгина за сигурност едновременно често влизат в конфликт.
.htaccess или wp-config.php може да срине целия сайт. Вижте Грешка 500 или „критична грешка“ на Вашия уебсайт (включително след актуализация на WordPress).Допълнителна информация
- Hardening WordPress (developer.wordpress.org, на английски)
Искате ли да научите повече? Запишете се за безплатния курс по WordPress, урок 7.4 Укрепване на сайта: права, headers и плъгини за сигурност.
