Data rundy

Raport z przeglądu survivalism.pl

Raport z jednej rundy opieki na przykładzie bloga na WordPressie. Aktualizacje zrobione najpierw na kopii roboczej, porównanie wyglądu przed i po, wdrożenie na produkcję następnego dnia i sprawdzenie strony po wdrożeniu.

Strona
survivalism.pl, blog o survivalu, przetrwaniu i outdoorze, po polsku z częścią wpisów po angielsku
Platforma
WordPress 7.1.2 (przed rundą 7.0.6), PHP 8.3
Motyw
Iconic One 3.4 z własnym motywem potomnym
Wtyczki
27, wszystkie aktywne
Serwer
hosting współdzielony, serwer LiteSpeed
Runda
23.09.2026 na kopii roboczej, wdrożenie na produkcję 24.09.2026

Raport przykładowy z rundy opieki. Strona należy do wykonawcy rundy. Rozdział 6 opisuje nieprawidłowości: pod każdą stoi ramka z tym, co zrobiono w rundzie, a gdy zalecenie zostaje otwarte, z rekomendacją naprawy.

1. Podsumowanie

  • Runda z 23.09.2026, wdrożona 24.09.2026: zaktualizowano rdzeń WordPressa (z 7.0.6 do 7.1.2), trzy wtyczki, motyw strony, cztery nieaktywne motywy domyślne i tłumaczenia. Wszystko najpierw na kopii roboczej; produkcja do chwili wdrożenia bez zmian.
  • Poprawki bezpieczeństwa niesie jedna aktualizacja: Copy & Delete Posts 1.5.6 (dwie poprawki, sekcja 4). Ta wtyczka miała na produkcji wyłączone automatyczne aktualizacje, więc poprawka wydana 18.08.2026 czekała na rundę.
  • Rdzeń nie wymagał łatania. Poprawki bezpieczeństwa z wydań 7.1.1 i 7.1.2 WordPress wydał tego samego dnia także dla gałęzi 7.0, a strona zainstalowała je sama; poprawkę krytycznej luki dostępnej bez logowania 16 minut po ogłoszeniu wydania.
  • Porównanie wizualne 12 stron na telefonie i komputerze wykryło jedną regresję: nowa wersja motywu zamieniła link pod zajawkami wpisów na angielski tekst, także na stronach polskich. Poprawiona przed wdrożeniem. Po poprawce 22 z 24 zrzutów są identyczne co do piksela; ekran logowania różni się nowym wyglądem z WordPressa 7.1.
  • Konsola przeglądarki i log błędów PHP: bez nowych błędów.
  • Po wdrożeniu wykonano zalecenia 6.2-6.5: automatyczne aktualizacje dwóch wtyczek, usunięcie nieaktywnych wtyczek i motywów, porządek w repozytorium i usunięcie katalogu kopii zapasowych bez blokady dostępu. Zalecenie zdalnych kopii bazy (6.7) odłożone decyzją właściciela.
  • Przy wdrożeniu naprawiono usterkę sprzed rundy: otwarte menu na telefonie pokazywało jedną z pięciu pozycji (6.6).
  • Czas rundy do końca testów na kopii: 40 minut; wdrożenie na produkcję z kontrolą: 7 minut (sekcja 7), bez błędów (sekcja 8).

2. Kopia zapasowa i kopia robocza

  • Kopia zapasowa bazy danych przed jakąkolwiek zmianą: 23.09.2026 16:04, 136 tabel, przechowywana poza serwerem strony.
  • Stan plików produkcji sprzed rundy (odczyt 16:03) zapisany w repozytorium kodu osobno, przed zmianami z rundy. Od poprzedniego zapisu (05.08.2026) automatyczne aktualizacje zmieniły albo dodały 4049 plików i usunęły 795. Pliki zmienione i dodane porównane z produkcją sumą kontrolną: 4049 z 4049 zgodnych.
  • Kopia robocza odtworzona z produkcji tego samego dnia (pliki i baza). Aktualizacje wykonane najpierw na niej.
  • Na kopii roboczej wysyłka poczty i połączenia do usług zewnętrznych są przechwytywane, a zadania harmonogramu wyłączone, żeby test nie wysłał nic w imieniu strony. Zrzuty ekranu wykonywane z zablokowanymi skryptami analitycznymi i reklamowymi.

3. Aktualizacje: wersje przed i po

SkładnikPrzedPoRodzaj zmianyPoprawki bezpieczeństwa w opisie wydania
WordPress (rdzeń)7.0.67.1.2nowa gałąź 7.1brak nowych (sekcja 4)
Copy & Delete Posts1.5.51.5.6poprawkowatak, dwie
CookieYes (zgody na pliki cookie)3.5.43.5.6poprawkowabrak
Redis Object Cache (z plikiem drop-in)2.8.03.0.0głównabrak
Iconic One (motyw strony, przez motyw potomny)3.2.33.4dwie wersjebrak
Twenty Nineteen (nieaktywny)3.33.4poprawkowabrak
Twenty Twenty-Two (nieaktywny)2.12.2poprawkowabrak
Twenty Twenty-Three (nieaktywny)1.61.7poprawkowabrak
Twenty Twenty-Four (nieaktywny)1.51.6poprawkowabrak
Tłumaczenia rdzenia, wtyczek i motywów-bieżące--

Bez zmian, bo w dniu rundy nie było nowszych wersji: pozostałe 29 wtyczek i motyw Twenty Twenty-Five. 27 z tych wtyczek ma włączone automatyczne aktualizacje, dwie nie (Filenames to latin i JSON Basic Authentication, 6.2). Vue Sun App i JSON Basic Authentication są spoza katalogu wordpress.org i nie mają kanału aktualizacji, więc brak nowszej wersji niczego o nich nie mówi. ACF PRO 6.8.10 to najnowsza wersja (tę samą numerację ma ACF w katalogu wordpress.org, wydanie z 10.09.2026). Motyw potomny jest własny i nie ma wydań zewnętrznych; zmieniono w nim jedną funkcję (6.1).

4. Poprawki bezpieczeństwa z opisów wydań

Copy & Delete Posts 1.5.6 (wydana 18.08.2026)

Opis wydania wymienia dwie poprawki bezpieczeństwa i dwie powiązane poprawki błędów:

  • wzmocniona kontrola uprawnień przy kopiowaniu i powielaniu wpisów;
  • oczyszczanie danych wpisu i pól dodatkowych przed wyświetleniem, żeby nie ujawniać treści;
  • kopiowanie dostępne tylko dla użytkowników z odpowiednimi uprawnieniami;
  • wpisy chronione hasłem nie ujawniają treści przy powielaniu.

Automatyczne aktualizacje tej wtyczki były na produkcji wyłączone, więc poprawki czekały od 18.08.2026 (zalecenie w 6.2).

Rdzeń WordPress

  • WordPress wydał dwa wydania bezpieczeństwa gałęzi 7.1: 7.1.1 (17.09.2026) i 7.1.2 (22.09.2026). Poprawki dla gałęzi 7.0 wyszły tego samego dnia jako 7.0.5 i 7.0.6; strona zainstalowała obie automatycznie (17.09 o 22:54 i 22.09 o 16:17).
  • 7.1.2 i 7.0.6 zamykają krytyczną lukę CVE-2026-87902: obejście ścieżki przy wyborze szablonu strony, dostępne bez logowania, w pewnych warunkach prowadzące do wykonania kodu na serwerze. Przebieg 22.09.2026 (czas polski):
    • 16:01 - WordPress ogłasza wydanie;
    • 16:17 - strona sama aktualizuje się do 7.0.6 i wysyła administratorowi powiadomienie o aktualizacji;
    • 19:44 - pierwsze zaobserwowane próby wykorzystania luki (według Patchstack).
  • WordPress oznacza wersję 7.0.6 jako nieaktualną, ale bezpieczną. Aktualizacja do 7.1.2 w tej rundzie to przejście na bieżącą gałąź, a nie łatanie luki.

Pozostałe składniki

Opisy wydań nie zawierają poprawek bezpieczeństwa:

  • CookieYes 3.5.5 i 3.5.6: zgodność z WordPressem 7.1, poprawka tłumaczenia, dokumentacja;
  • Redis Object Cache 3.0.0: nowsze wersje bibliotek, poprawki działania pamięci podręcznej (m.in. zapis przy zamianie nieistniejącego klucza, połączenie zawieszone w trybie potokowym po operacjach zbiorczych);
  • Iconic One 3.3 i 3.4: zgodność z WordPressem 6.9 i 7, poprawki ostrzeżeń PHP, usunięcie obsługi starych wersji Internet Explorera, nowy tekst linku pod zajawkami (skutek w 6.1);
  • motywy domyślne: wydania towarzyszące WordPressowi 7.1 (dokumentacja, prefiksy CSS).

5. Porównanie wizualne przed i po

  • Zakres: 12 stron (strona główna po polsku i po angielsku, trzy wpisy, w tym jeden angielski, kategoria, dwie strony statyczne, kontakt, wyniki wyszukiwania, strona błędu 404, ekran logowania), każda na telefonie (390 x 844) i komputerze (1440 x 900): 24 pary zrzutów.
  • Kontrola szumu: przed aktualizacjami drugi przebieg zrzutów bez żadnej zmiany dał 24 z 24 par identycznych, więc każda różnica po aktualizacji pochodzi od zmiany, nie od narzędzia.
  • Po aktualizacjach, przed poprawką: 8 par różnych (strona główna po polsku i po angielsku, kategoria, wyniki wyszukiwania, na obu urządzeniach), od 6,9% do 28,5% pikseli. Przyczyna: tekst linku pod zajawkami (6.1).
  • Po poprawce: 22 z 24 par identyczne co do piksela. Ekran logowania różni się o 0,3% (komputer) i 1,2% (telefon): WordPress 7.1 dodał ikonę pomocy przy „Zapamiętaj mnie”, podkreślił linki pod formularzem i podpisał wybór języka. Zmiana z wydania, nie regresja.
  • Konsola przeglądarki i sieć: brak nowych błędów względem stanu sprzed aktualizacji.
  • Log błędów PHP: pusty po odsłonach wszystkich 24 zrzutów.
  • PHP 8.3 (wersja serwera produkcji): składnia wszystkich 531 zmienionych plików PHP bez błędów; działanie na 8.3 sprawdzane po wdrożeniu (sekcja 8).

6. Nieprawidłowości i zalecenia

Iconic One 3.4 zmienił link pod zajawkami z „Dowiedz się więcej »” na „Read More: <tytuł wpisu> »”. Nowego tekstu nie ma w polskim tłumaczeniu motywu, więc listy wpisów po polsku pokazywały angielski tekst, a dłuższy link przesuwał układ.

Zajawka wpisu na stronie głównej po aktualizacji motywu i po poprawce
Zajawka wpisu na stronie głównej, kopia robocza, komputer: po aktualizacji motywu angielski link z tytułem wpisu w osobnym wierszu, po poprawce wcześniejszy link po polsku.

Link z tytułem wpisu byłby lepszy dla czytników ekranu i wyszukiwarek, ale zmienia wygląd list wpisów. Decyzja właściciela: zostaje wcześniejszy link, bez zmiany wyglądu.

Wykonano

W motywie potomnym przywrócono wcześniejszy link z polskim tłumaczeniem, przed wdrożeniem; zrzuty po poprawce są identyczne z tymi sprzed aktualizacji. Po wdrożeniu na produkcji pięć z pięciu linków pod zajawkami jest po polsku, na stronie głównej i w kategorii.

6.2 Wtyczki bez automatycznych aktualizacji

Wyłączone na produkcji dla: Copy & Delete Posts, CookieYes, Redis Object Cache, Filenames to latin i JSON Basic Authentication. Zalecenie:

  • Copy & Delete Posts i CookieYes: włączyć (poprawki bezpieczeństwa nie będą czekać na rundę);
  • Redis Object Cache: zostawić do rundy, bo razem z wtyczką aktualizuje się plik drop-in w katalogu treści;
  • Filenames to latin: ostatnie wydanie 09.08.2020, sprawdzona z WordPressem 5.5; wtyczka nierozwijana, do zastąpienia albo usunięcia;
  • JSON Basic Authentication: nieaktywna, spoza katalogu wordpress.org, do usunięcia (6.3).

Wykonano

24.09.2026 włączono automatyczne aktualizacje dla Copy & Delete Posts i CookieYes. Redis Object Cache zostaje do rund. Filenames to latin zostaje bez zmian do planowanej przebudowy serwisu, bo zastąpienie jej zmieniłoby sposób nazywania nowych plików na krótko przed zmianą całego systemu.

6.3 Nieaktywne wtyczki i motywy

Nieaktywne wtyczki: Broken Link Checker, JSON Basic Authentication, Vue Sun App, WP Slug Post Type Custom Language (ostatnie wydanie 24.12.2022). Nieaktywne motywy: pięć motywów domyślnych (Twenty Nineteen do Twenty Twenty-Five). Kod nieaktywnej wtyczki albo motywu nadal leży na serwerze i bywa osiągalny z zewnątrz. Zalecenie: usunąć wtyczki, które nie są potrzebne, i zostawić jeden motyw domyślny jako zapasowy.

Wykonano

24.09.2026 usunięto cztery nieaktywne wtyczki i cztery motywy domyślne; jako zapasowy zostaje Twenty Twenty-Five. Strony po usunięciu odpowiadają poprawnie, menu i link pod zajawkami bez zmian.

6.4 Pliki robocze zapory w repozytorium kodu

Zapora (Wordfence) zapisuje w swoim katalogu roboczym konfigurację i reguły, które zmieniają się w trakcie pracy strony. Katalog jest w repozytorium kodu, więc każda runda zaczyna się od zmian, które nie są zmianami strony. Zalecenie: wyłączyć ten katalog z repozytorium.

Wykonano

24.09.2026 katalog zapory oraz katalogi robocze kopii zapasowych i mapy witryny wyłączono z repozytorium; pliki zostały na serwerze, zapora działa dalej. Stan kodu na serwerze jest od tej chwili zgodny z repozytorium bez wyjątków.

6.5 Katalog kopii zapasowych bez blokady dostępu (naprawione 24.09.2026)

Wtyczka do kopii zapasowych Duplicator po automatycznej aktualizacji do wersji 5.0.4 (09.09.2026) założyła nowy katalog na kopie. Jego zabezpieczenie wymuszało tylko pobieranie plików i nie blokowało dostępu z zewnątrz, a wcześniejszy katalog z ręcznie dodaną blokadą zniknął. Następna kopia strony (baza i pliki) byłaby więc publicznie do pobrania. W dniu odczytu w katalogu nie było żadnej kopii.

Wniosek dla opieki: automatyczna aktualizacja wtyczki potrafi zdjąć zabezpieczenie ustawione wcześniej ręcznie, dlatego runda sprawdza katalogi kopii zapasowych, a nie tylko numery wersji.

Wykonano

24.09.2026 usunięto Duplicatora razem z katalogiem; wtyczka nie była używana do kopii, robi je UpdraftPlus (6.7).

6.6 Menu na telefonie ucięte (usterka sprzed rundy, naprawiona przy wdrożeniu)

Po otwarciu menu na telefonie widać było jedną z pięciu pozycji: lista rozwijała się w pasku o wysokości 100 pikseli, reszta pozycji leżała poza nim i nie dało się jej kliknąć. Przed wdrożeniem sprawdzone na produkcji na czterech szerokościach ekranu (360, 390 i 767 pikseli oraz telefon poziomo): usterka na wszystkich czterech, więc występowała przed rundą, a nie po niej. Przyczyna: reguła stylu motywu nadrzędnego pozycjonuje listę menu absolutnie wewnątrz paska.

Otwarte menu na telefonie przed poprawką i po niej
Otwarte menu na telefonie (390 pikseli szerokości), produkcja, 24.09.2026: przed poprawką widać jedną pozycję w pasku, po poprawce wszystkie pięć.

Porównanie zrzutów przed i po aktualizacji (sekcja 5) tej usterki nie wykaże z dwóch powodów: zrzuty pokazują stronę z zamkniętym menu, a usterka obecna przed i po daje identyczne zrzuty. Od tej rundy kontrola obejmuje także stany po kliknięciu (otwarte menu i podmenu, wyszukiwarka, baner zgód) i sprawdza je bezwzględnie, nie tylko przez porównanie.

Przy tej kontroli widać też, że na telefonie baner zgód na pliki cookies przykrywa przycisk menu, dopóki czytelnik nie odpowie na baner. To zachowanie typowe dla banerów zgód; zostaje bez zmian.

Wykonano

Poprawka w motywie potomnym, wdrożona razem z rundą: menu rozwija się na pełną wysokość, a gdy ekran jest niższy od menu (telefon poziomo), przewija się. Po wdrożeniu pięć z pięciu pozycji widocznych na każdej z czterech szerokości.

6.7 Kopie zapasowe tylko na tym samym serwerze

UpdraftPlus robi kopię bazy codziennie, a kopię plików tylko ręcznie, i zapisuje obie na tym samym serwerze, bez kopii zdalnej. Awaria albo przejęcie serwera zabiera stronę razem z kopiami. Pliki strony, w tym przesłane obrazy, są w repozytorium kodu poza serwerem, więc brakującym ogniwem jest baza.

Rekomendacja naprawy

Wskazać UpdraftPlusowi zdalne miejsce na kopie bazy (wersja bezpłatna to obsługuje) i sprawdzić, że kopia da się odtworzyć.

Decyzja właściciela z 24.09.2026: odłożone. Treść strony zmienia się rzadko, a kopia bazy wykonana przed zmianami tej rundy leży poza serwerem, więc przy awarii przepadłyby tylko zmiany od ostatniej rundy. Zalecenie wraca, gdy strona znów będzie rozwijana.

7. Czas rundy

Czas polski (UTC+2), 23.09.2026.

EtapOdDoCzas
Odczyt stanu produkcji, kopia zapasowa bazy16:0116:043 min
Kopia robocza z produkcji16:0516:127 min
Zrzuty „przed” i przebieg kontrolny szumu16:1216:2412 min
Lista aktualizacji i aktualizacje16:2416:284 min
Porównanie po aktualizacji, naprawa regresji, ponowne porównanie, kontrola PHP16:2816:4113 min
Razem do końca testów na kopii16:0116:4140 min

W czasie zrzutów „przed” mieści się ok. 5 minut jednorazowej zmiany narzędzia (blokada skryptów analitycznych na kopii); w kolejnych rundach ten czas odpada.

Wdrożenie na produkcję, 24.09.2026 (po akceptacji właściciela, sekcja 8):

EtapOdDoCzas
Kontrola menu przed wdrożeniem, odczyt stanu produkcji, kopia bazy08:4408:462 min
Zapis stanu produkcji, przeniesienie rundy, przełączenie, pamięć podręczna08:4608:482 min
Kontrola po wdrożeniu (strony, menu, logi)08:4808:513 min
Razem wdrożenie z kontrolą08:4408:517 min
Zalecenia 6.2-6.5: kopia bazy, zmiany, przełączenie, sprzątanie, kontrola08:5208:575 min

8. Wdrożenie na produkcję i kontrola po wdrożeniu

Czas polski (UTC+2), 24.09.2026. Właściciel zaakceptował wdrożenie rano; wdrożenie w czwartek, poza piątkiem.

  • Stan produkcji tuż przed wdrożeniem: porównany plik po plik z odczytem z 23.09.2026 16:03, na którym testowano rundę: bez zmian. Zmiany zrobione na produkcji przez automatyczne aktualizacje (poza repozytorium kodu) zapisano w repozytorium, a rundę przeniesiono na ten zapis. Drzewo plików po przeniesieniu jest identyczne z przetestowanym na kopii, poza czterema plikami roboczymi wtyczek (kopie zapasowe i mapa witryny), których runda nie dotyka.
  • Kopia zapasowa bazy tuż przed wdrożeniem: 08:46, 137 tabel, zrzut zakończony poprawnie, przechowywany poza serwerem.
  • Przełączenie: 08:48. Wersja bazy bez zmian (61833), więc bez aktualizacji bazy. Wyczyszczona pamięć podręczna stron i pamięć obiektów.
  • Kontrola z zewnątrz (przeglądarka z prawdziwym identyfikatorem, nie automat): strona główna po polsku i po angielsku, wpis, kategoria, kontakt i ekran logowania odpowiadają poprawnie; link pod zajawkami na stronie głównej i w kategorii po polsku (5 z 5, żadnego po angielsku); zasoby strony w wersji 7.1.2; w kodzie stron brak komunikatów o błędach PHP. Strony renderują się na serwerze produkcji, czyli na PHP 8.3.
  • Menu na telefonie: przed wdrożeniem jedna z pięciu pozycji na każdej z czterech szerokości, po wdrożeniu pięć z pięciu (6.6).
  • Log błędów PHP: w dniu wdrożenia serwis nie prowadził logu błędów PHP (tryb diagnostyczny wyłączony), więc kontrola po wdrożeniu opierała się na odpowiedziach stron i pełnym wyświetleniu w przeglądarce, nie na logu. Tego samego dnia włączono zapis błędów do pliku poza katalogiem publicznym, bez wyświetlania ich odwiedzającym; wpis testowy wysłany przez stronę trafił do tego pliku.
  • Czas wdrożenia z kontrolą: 7 minut (sekcja 7).
Pobierz raport w PDF

Ten sam tekst co na tej stronie, do wydruku albo przekazania dalej. Bez podawania maila.

Zacznijmy od rozmowy.

Każdy projekt zaczynam od rozmowy wstępnej. Umowę podpisujemy dopiero wtedy, gdy obie strony wiedzą, że ta współpraca ma sens.

LinkedIn

Twoje dane są bezpieczne i nie będą udostępniane osobom trzecim