Модул 7 · 7.2
Следене на актуализациите
Модул 7: Сигурност · Време за четене: 8 минути
Учебна цел: След този урок ще можете да настроите актуализациите така, че да се извършват бързо и безопасно, и ще знаете какво да правите с разширение, което вече не получава актуализации.
Ключови понятия: малка версия, голяма версия, актуализация за сигурност, автоматични актуализации (ядро, разширения, теми), rollback, актуализации чрез инсталатор, изоставено разширение, changelog, тестова среда (staging) за големи актуализации
Защо бързото актуализиране е по-важно от предпазливото изчакване
Урок 7.1 показа това: нападателите търсят известни пропуски, за които вече има актуализация. Между появата на поправка и първите масови сканирания понякога минават само няколко часа или дни. Който „първо изчаква месец, за да провери дали актуализацията е добра“, стои отворен точно този месец.
В същото време дадена актуализация може да счупи нещо. Решението не е изчакване, а да се осигури актуализирането да бъде автоматично, бързо и обратимо:
- малките актуализации и актуализациите на разширенията, автоматично;
- резервно копие непосредствено преди актуализацията, с автоматично връщане назад при проблем;
- големите актуализации, първо тествани в тестова среда (staging) (урок 8.3), но в рамките на дни, не месеци.
Малки и големи версии на WordPress
WordPress номерира версиите по следния начин: 7.1.4:
- 7.1 е голямата версия (major release). На година излизат няколко, с нови функции.
- .4 е малка версия (minor release): поправки и актуализации за сигурност, без големи промени.
От версия 3.7 насам WordPress инсталира малките версии и актуализациите за сигурност автоматично, освен ако не сте изключили това. Големите версии по подразбиране инсталирате сами, с бутон в Табло > Актуализации. В wp-config.php можете да управлявате това поведение:
define( 'WP_AUTO_UPDATE_CORE', 'minor' ); // по подразбиране: само малки версии
define( 'WP_AUTO_UPDATE_CORE', true ); // и големи версии
define( 'WP_AUTO_UPDATE_CORE', false ); // нищо автоматично (не се препоръчва)Изберете един от трите реда. По подразбиране (minor) е добре за повечето сайтове; ако Вашият инсталатор или хостинг доставчик актуализира големите версии вместо Вас, това също е напълно наред.
WordPress официално поддържа само най новата голяма версия. Поправките за сигурност известно време се прилагат и към по стари серии, но на това не бива да разчитате.
Разширения и теми автоматично
От WordPress 5.5 насам при Разширения можете да натиснете за всяко разширение Включване на автоматични актуализации, а при Изглед > Теми за всяка тема. Включете това за повечето разширения: там се намират пропуските (урок 7.1).
От WordPress 6.6 насам WordPress проверява след автоматична актуализация на разширение дали сайтът все още работи. Ако актуализацията предизвика фатална грешка, WordPress връща предишната версия (rollback) и получавате имейл за това. Това предотвратява най голям риск от автоматичните актуализации: бял, нефункциониращ сайт, който забелязвате едва седмица по късно.
Инсталатори като Installatron (урок 2.2) могат да правят същото: с предварително резервно копие и връщане назад, ако актуализацията се провали. Използвайте съзнателно една от двете системи; те не си пречат, но е добре да знаете кой какво прави.
Изключения, при които понякога изключвате автоматичните актуализации:
- разширение, за което знаете, че големите версии често променят нещо (конструктор на страници, разширение за онлайн магазин с интеграции); актуализирайте го след тест в тестова среда (staging), но бързо;
- тема с промени направени директно във файловете. По добре: поставете тези промени в child theme (урок 5.2), тогава родителската тема може спокойно да се актуализира автоматично.
Платени разширения
Платените разширения получават актуализации само докато лицензът Ви е валиден. Изтекъл лиценз означава: без актуализации за сигурност. Следете лицензите си (урок 9.4). А платено разширение, изтеглено от сайт за сваляне, изобщо не получава актуализации (урок 5.3).
Изоставеното разширение
Разширение без актуализации от дълго време, или такова, което е премахнато от папката с разширения на wordpress.org („Това разширение е затворено“), вече не получава поправки. Какво да направите:
- Проверете причината. При затворено разширение често е посочена причината (например проблем със сигурността). Ако е проблем със сигурността, действайте веднага.
- Потърсете алтернатива, която се поддържа активно (урок 5.3), или проверете дали все още имате нужда от съответната функция.
- Заменете в тестова среда (staging), тествайте и след това премахнете старото разширение напълно.
Оставянето на изоставено разширение „за всеки случай“ е точно рискът, който искате да избегнете.
Четене на changelog
При всяка актуализация има changelog: какво е променено. При Табло > Актуализации или на страницата на разширението (раздел Разработка или Changelog). Обърнете особено внимание на думи като „security“, „beveiliging“ или „fix vulnerability“: тогава искате да актуализирате възможно най бързо. И на „breaking change“, „requires PHP 8.x“ или „нова версия на“: тогава първо тествайте.
След актуализация
- Прегледайте накратко сайта си, включително най важните функции (формуляр, количка за пазаруване, вход в системата).
- Прочетете имейлите от WordPress или инсталатора си за успешни, неуспешни или върнати назад актуализации. Rollback означава, че старата (уязвима) версия отново работи: разрешете проблема, често като актуализирате и PHP, темата или друго разширение, или като замените разширението.
- Проверете в Състояние на сайта (урок 5.4) дали все още има известия.
На практика: така изглежда в един панел
В администрацията на WordPress:
- Табло > Актуализации: статус на WordPress, разширенията и темите. Тук се вижда и дали автоматичните актуализации за големи версии са включени.
- Разширения: в колоната Автоматични актуализации за всяко разширение „включване“ или „изключване“. Най отгоре с Масови действия можете да включите няколко едновременно.
- Изглед > Теми: кликнете върху тема, за да видите бутона за автоматични актуализации.
В Installatron (DirectAdmin) настройвате това за всяка инсталация при Редактиране > Настройки > Auto Update. В Softaculous (cPanel) и WP Toolkit (Plesk) същият избор се намира в настройките на инсталацията.
Обобщение
- Известните пропуски бързо се експлоатират; актуализирането трябва да е бързо, автоматично и обратимо.
- WordPress инсталира малките версии автоматично (от версия 3.7 насам); големите версии по подразбиране след клик, или автоматично ако изберете това.
- Включете автоматичните актуализации за повечето разширения и теми; от версия 6.6 насам WordPress връща назад неуспешни актуализации на разширения.
- Изтекъл лиценз или изоставено разширение означава липса на актуализации за сигурност: заменете го.
- Четете changelog и имейлите след актуализация; rollback решавате активно.
Тест
Задача
Задача A7.2: Актуален ли е Вашият WordPress? Проверете в администрацията на сайта си при Табло > Актуализации коя версия на WordPress имате и въведете я, заедно с домейна си. Програмата взема най новата версия от публичното версийно API на wordpress.org и сравнява: зелено ако имате най новата, оранжево ако сте в същата голяма версия, но Ви липсва малка актуализация, червено ако работите със по стара голяма версия. Въведете също колко от разширенията Ви имат включени автоматични актуализации и колко нямат, и защо.
Допълнително четене
Тези статии описват стъпките в панелите на WebOké; в други панели работят по подобен начин.
- Ръководство за DirectAdmin 13.5: Обновявания и автоматични обновявания
- Актуализиране на Joomla и WordPress чрез Installatron
- Грешка 500 или „критична грешка“ на Вашия уебсайт (включително след актуализация на WordPress)
- Настройване на автоматични актуализации (wordpress.org, Английски): https://wordpress.org/documentation/article/configuring-automatic-background-updates/
