Śledzenie aktualizacji
Moduł 7: Bezpieczeństwo · Czas czytania: 8 minut
Cel lekcji: Po tej lekcji będą Państwo potrafili skonfigurować aktualizacje tak, aby odbywały się szybko i bezpiecznie, oraz będą Państwo wiedzieli, co zrobić z wtyczką, która nie otrzymuje już aktualizacji.
Kluczowe pojęcia: wersja pomniejsza, wersja główna, aktualizacja zabezpieczeń, automatyczne aktualizacje (rdzeń, wtyczki, motywy), rollback, aktualizacje przez instalator, porzucona wtyczka, rejestr zmian (changelog), środowisko testowe (staging) dla dużych aktualizacji
Dlaczego szybkie aktualizowanie jest ważniejsze niż ostrożne czekanie
Lekcja 7.1 pokazała to wyraźnie: włamywacze szukają znanych luk, dla których istnieje już aktualizacja. Między pojawieniem się poprawki a pierwszymi masowymi skanowaniami mija czasem zaledwie kilka godzin lub dni. Kto „najpierw czeka miesiąc, czy aktualizacja jest dobra”, przez ten miesiąc pozostaje bezbronny.
Jednocześnie aktualizacja może coś zepsuć. Rozwiązaniem nie jest czekanie, lecz zadbanie o to, by aktualizowanie było automatyczne, szybkie i odwracalne:
- małe aktualizacje i aktualizacje wtyczek automatycznie;
- kopia zapasowa tuż przed aktualizacją, z automatycznym przywróceniem w razie niepowodzenia;
- duże aktualizacje najpierw testowane w środowisku testowym (staging) (lekcja 8.3), ale w ciągu dni, nie miesięcy.
Wersje pomniejsze i główne WordPressa
WordPress numeruje wersje jako 7.1.4:
- 7.1 to wersja główna (major release). Pojawia się kilka razy w roku, z nowymi funkcjami.
- .4 to wersja pomniejsza (minor release): poprawki i aktualizacje zabezpieczeń, bez większych zmian.
Od wersji 3.7 WordPress instaluje wersje pomniejsze i aktualizacje zabezpieczeń automatycznie, chyba że zostało to wyłączone. Wersje główne domyślnie instaluje się samodzielnie, za pomocą przycisku w Kokpit > Aktualizacje. W pliku wp-config.php można sterować tym zachowaniem:
define( 'WP_AUTO_UPDATE_CORE', 'minor' ); // standaard: alleen kleine versies
define( 'WP_AUTO_UPDATE_CORE', true ); // ook grote versies
define( 'WP_AUTO_UPDATE_CORE', false ); // niets automatisch (afgeraden)Proszę wybrać jedną z trzech opcji. Ustawienie domyślne (minor) jest dla większości stron odpowiednie; jeśli instalator lub dostawca hostingu aktualizuje za Państwa również wersje główne, to także jest w porządku.
WordPress oficjalnie wspiera tylko najnowszą wersję główną. Poprawki bezpieczeństwa przez jakiś czas są wydawane również dla starszych serii, ale nie należy na tym polegać.
Wtyczki i motywy automatycznie
Od wersji WordPress 5.5 w sekcji Wtyczki można zaznaczyć dla poszczególnych wtyczek opcję Włącz automatyczne aktualizacje, a w Wygląd > Motywy dla poszczególnych motywów. Proszę włączyć to dla większości wtyczek: to tam znajdują się luki (lekcja 7.1).
Od wersji WordPress 6.6 WordPress sprawdza po automatycznej aktualizacji wtyczki, czy strona nadal działa. Jeśli aktualizacja spowoduje błąd krytyczny, WordPress przywraca poprzednią wersję (rollback) i wysyła wiadomość e-mail. To zabezpiecza przed największym ryzykiem automatycznych aktualizacji: białą stroną, o której dowiadują się Państwo dopiero po tygodniu.
Instalatory takie jak Installatron (lekcja 2.2) również to potrafią: z kopią zapasową wykonaną wcześniej i cofnięciem zmian w razie niepowodzenia aktualizacji. Proszę świadomie korzystać z jednego z tych dwóch systemów; nie wykluczają się one wzajemnie, ale warto wiedzieć, kto za co odpowiada.
Wyjątki, w których czasem warto wyłączyć automatyczne aktualizacje:
- wtyczka, o której wiadomo, że duże wersje często coś zmieniają (kreator stron, wtyczka sklepu internetowego z integracjami); taką wtyczkę warto aktualizować po przetestowaniu w środowisku testowym (staging), ale szybko;
- motyw z modyfikacjami wprowadzonymi bezpośrednio w plikach. Lepiej: proszę umieścić te zmiany w motywie potomnym (lekcja 5.2), wtedy motyw nadrzędny może aktualizować się automatycznie bez przeszkód.
Płatne wtyczki
Płatne wtyczki otrzymują aktualizacje tylko wtedy, gdy licencja jest ważna. Wygasła licencja oznacza: brak aktualizacji zabezpieczeń. Proszę śledzić swoje licencje (lekcja 9.4). Płatna wtyczka pobrana z serwisu do pobierania plików w ogóle nie otrzymuje aktualizacji (lekcja 5.3).
Porzucona wtyczka
Wtyczka bez aktualizacji od dłuższego czasu lub usunięta z katalogu wtyczek wordpress.org („Ta wtyczka została zamknięta”) nie otrzyma już poprawek. Co należy zrobić:
- Proszę sprawdzić dlaczego. Przy zamkniętej wtyczce często podany jest powód (na przykład problem z bezpieczeństwem). Jeśli to problem z bezpieczeństwem, proszę działać natychmiast.
- Proszę poszukać alternatywy, która jest aktywnie utrzymywana (lekcja 5.3), lub sprawdzić, czy ta funkcja jest w ogóle jeszcze potrzebna.
- Proszę wymienić wtyczkę w środowisku testowym (staging), przetestować i dopiero potem całkowicie usunąć starą wtyczkę.
Pozostawienie porzuconej wtyczki „na wszelki wypadek” to dokładnie to ryzyko, którego należy unikać.
Czytanie rejestru zmian (changelog)
Przy każdej aktualizacji znajduje się rejestr zmian (changelog): co zostało zmienione. Można go znaleźć w Kokpit > Aktualizacje lub na stronie wtyczki (zakładka Rozwój lub Dziennik zmian). Proszę zwracać szczególną uwagę na słowa takie jak „security”, „bezpieczeństwo” lub „fix vulnerability”: wtedy warto zaktualizować jak najszybciej. Oraz na „breaking change”, „requires PHP 8.x” lub „nowa wersja”: wtedy najpierw trzeba przetestować.
Po aktualizacji
- Proszę przejrzeć stronę, w tym najważniejsze funkcje (formularz, koszyk, logowanie).
- Proszę przeczytać wiadomości e-mail od WordPressa lub instalatora dotyczące udanych, nieudanych lub cofniętych aktualizacji. Rollback oznacza, że ponownie działa stara (podatna) wersja: należy to rozwiązać, często przez aktualizację PHP, motywu lub innej wtyczki, albo przez wymianę wtyczki.
- Proszę sprawdzić w Stanie witryny (lekcja 5.4), czy nie ma dalszych ostrzeżeń.
W praktyce: jak to wygląda w panelu
W panelu administracyjnym WordPressa:
- Kokpit > Aktualizacje: status WordPressa, wtyczek i motywów. Znajduje się tu również informacja, czy automatyczne aktualizacje dla wersji głównych są włączone.
- Wtyczki: w kolumnie Automatyczne aktualizacje dla każdej wtyczki można kliknąć „włącz” lub „wyłącz”. U góry za pomocą Działań masowych można włączyć kilka jednocześnie.
- Wygląd > Motywy: proszę kliknąć na motyw, aby zobaczyć przycisk automatycznych aktualizacji.
W Installatronie (DirectAdmin) ustawia się to dla każdej instalacji w Edytuj > Ustawienia > Auto-Update. W Softaculous (cPanel) i WP Toolkit (Plesk) ten sam wybór znajduje się w ustawieniach instalacji.
Podsumowanie
- Znane luki są szybko wykorzystywane; aktualizowanie musi być szybkie, automatyczne i odwracalne.
- WordPress instaluje wersje pomniejsze automatycznie (od wersji 3.7); wersje główne domyślnie po kliknięciu, lub automatycznie, jeśli tak Państwo wybiorą.
- Proszę włączyć automatyczne aktualizacje dla większości wtyczek i motywów; od wersji 6.6 WordPress cofa nieudane aktualizacje wtyczek.
- Wygasła licencja lub porzucona wtyczka oznacza brak aktualizacji zabezpieczeń: proszę ją wymienić.
- Proszę czytać rejestr zmian i wiadomości e-mail po aktualizacji; rollback należy aktywnie rozwiązać.
Quiz
Zadanie
Zadanie A7.2: Czy Państwa WordPress jest aktualny? Proszę sprawdzić w panelu administracyjnym swojej strony w Kokpit > Aktualizacje, jaką wersję WordPressa Państwo posiadają, i wpisać ją wraz z domeną. Program pobierze najnowszą wersję z publicznego API wersji wordpress.org i porówna: zielony, jeśli mają Państwo najnowszą wersję, pomarańczowy, jeśli są Państwo w tej samej wersji głównej, ale brakuje aktualizacji pomniejszej, czerwony, jeśli działa starsza wersja główna. Proszę podać również, ile wtyczek ma włączone automatyczne aktualizacje, ile nie, i dlaczego.
Więcej informacji
Poniższe artykuły opisują kroki w panelach WebOké; w innych panelach działają one podobnie.
- Instrukcja DirectAdmin 13.5: Aktualizacje i automatyczne aktualizacje
- Aktualizacja Joomla i WordPressa przez Installatron
- Błąd 500 lub „krytyczny błąd" na Państwa stronie internetowej (również po aktualizacji WordPress)
- Konfiguracja automatycznych aktualizacji (wordpress.org, w języku angielskim): https://wordpress.org/documentation/article/configuring-automatic-background-updates/
