Wtyczka Ensomedia Security do WordPressa: co sprawdza i jak z niej korzystać
Darmowa wtyczka ShieldWave do WordPressa ekran po ekranie: pierwsze skanowanie, Przegląd, naprawa problemu, ochrona logowania, Historia i to, czego wtyczka nie robi.
Ensomedia Security to darmowa wtyczka do WordPressa, która sprawdza stronę od środka i prostym językiem mówi, co jest nie tak i jak to naprawić. W katalogu WordPress.org występuje jako Ensomedia Security powered by shieldwave.io, a w kokpicie pojawia się pod nazwą ShieldWave.
Wtyczka wykonuje 25 sprawdzeń. Szuka złośliwego kodu i podmienionych plików, znanych luk we wtyczkach i motywach, skryptów i spamu ukrytych w treści oraz kopii zapasowych, które może pobrać każdy. Przygląda się też kontom administratorów i ryzykownym ustawieniom. Do tego blokuje adresy, z których ktoś zgaduje hasła, i dodaje logowanie dwuskładnikowe. Sama nigdy nie zmienia Twoich plików, użytkowników ani ustawień. Kwarantanna, przywrócenie oryginału z WordPress.org i usunięcie wstrzykniętego kodu dzieją się tylko po kliknięciu przycisku.
Jeśli panel WordPressa masz po polsku, wtyczka też mówi po polsku, łącznie z mailami, które wysyła. Zrzuty ekranu pokazują wersję 1.0.3 w ciemnym motywie. Przyciski w nagłówku wtyczki przełączają ją na jasny motyw.
Instalacja i pierwsze skanowanie
W kokpicie otwórz Wtyczki > Dodaj nową wtyczkę, wpisz w wyszukiwarkę „Ensomedia Security”, kliknij Zainstaluj teraz, a potem Włącz. Wtyczka potrzebuje WordPressa 6.2 i PHP 7.4 albo nowszych. Samo włączenie nie uruchamia skanowania i niczego nigdzie nie wysyła.
Otwórz ShieldWave w menu po lewej i kliknij Uruchom pierwsze skanowanie.

Pierwsze skanowanie trwa zwykle kilka minut, bo ShieldWave zapisuje wtedy stan Twoich plików, z którym porównuje kolejne skanowania. Następne idą szybciej: czysty plik, który się nie zmienił, nie jest analizowany drugi raz. Skanowanie biegnie w tle, małymi krokami i nigdy w chwili, gdy odwiedzający ładuje stronę, więc możesz spokojnie zamknąć kartę. Później ShieldWave skanuje stronę sam, codziennie o 03:00 czasu ustawionego w WordPressie. Godzinę i częstotliwość zmienisz w Ustawieniach.
Jak czytać ekran Przegląd
Przegląd zaczyna się od jednego zdania o stanie strony: Twoja witryna wygląda na bezpieczną, Twoja witryna wygląda dobrze (nic pilnego, ale kilka rzeczy dałoby się poprawić), 1 sprawa wymaga twojej uwagi albo więcej, z nazwą najpilniejszej pod spodem, lub Twoja witryna wykazuje oznaki włamania. O tym ostatnim piszę niżej osobno.
Pod zdaniem widać, kiedy było ostatnie skanowanie, kiedy będzie następne, i wynik w skali do 100. Przy każdym sprawdzeniu najpoważniejszy otwarty problem odejmuje od niego punkty: 30 za krytyczny, 15 za wysoki, 8 za średni i 3 za niski.

Niżej jest lista zadań. Problemy tego samego rodzaju trafiają do jednego wiersza, więc kilka nieaktualnych wtyczek to jedna pozycja, a nie kilka. Wiersze dzielą się na cztery grupy:
- Napraw teraz: problemy, przez które ktoś może dostać się na stronę, albo ślady, że już to zrobił.
- Warto naprawić: nic pilnego, ale każdy z nich ułatwia atak.
- Poproś swojego programistę o sprawdzenie: rzeczy, których ShieldWave nie jest pewny, na przykład nowy plik PHP we wtyczce premium, który pojawił się bez aktualizacji. Ktoś, kto zna stronę, oceni je w minutę, a same nigdy nie wywołują maila.
- Warto wiedzieć: drobne usprawnienia na wolną chwilę.
Prawa kolumna pokazuje, co chroni stronę: automatyczne skanowania, powiadomienia e-mail, sprawdzanie znanych luk, ochronę logowania, logowanie dwuskładnikowe i wzmocnienie zabezpieczeń. Przy tym, co jest wyłączone, stoi link Włącz prowadzący do właściwej sekcji Ustawień, a liczba na zakładce Ustawienia mówi, ile z tych rzeczy jest jeszcze wyłączonych. Pod listą zadań możesz rozwinąć Co sprawdza ShieldWave, czyli wszystkie sprawdzenia z ich ostatnim wynikiem.
Planeta w górnym pasie pokazuje w przybliżeniu, gdzie jest Twoja strona, z jej domeną nad znacznikiem. Położenie wynika ze strefy czasowej ustawionej w WordPressie i nic nie jest w tym celu sprawdzane w internecie. Strzały nad planetą to symulacja typowego ruchu botów, o czym mówi podpis pod nią. Nie jest to zapis ataków na Twoją stronę. Przycisk obok podpisu zatrzymuje ruch.
Jak naprawić jeden problem
Kliknij wiersz, żeby go rozwinąć.

Rozwinięta pozycja mówi, które sprawdzenie ją wykryło i kiedy oraz co dokładnie znaleziono. Pod spodem jest ramka Jak to naprawić z krokami opisanymi prostym językiem. Jeśli poprawkę robi się na którymś ekranie WordPressa, główny przycisk prowadzi prosto tam: Otwórz aktualizacje przy nieaktualnych wtyczkach, Otwórz użytkowników przy administratorze, którego się nie spodziewasz, Otwórz ustawienia ogólne, gdy każdy, kto zarejestruje się na stronie, dostaje za duże uprawnienia. Jeśli problem zamyka jeden z przełączników ShieldWave, jak przy edytorze plików czy XML-RPC, przycisk otwiera właśnie ten przełącznik.
Część poprawek wymaga kogoś z dostępem do serwera. Kopiuj dla programisty kopiuje do schowka gotową wiadomość: adres strony, co i gdzie znaleziono, szczegóły techniczne i sposób naprawy. Wklejasz ją do maila i nie musisz niczego tłumaczyć własnymi słowami. Jak poprowadzić dalszą rozmowę, podpowiada tekst o tym, jak rozmawiać z programistą o bezpieczeństwie. Szczegóły techniczne na dole pozycji pokazują plik, regułę, która zadziałała, i fragment kodu, a przy luce jej numer CVE i wersję, która ją łata.
Jeśli coś zostało zmienione celowo, kliknij Ignoruj. Pozycja przestaje się liczyć do wyniku i powiadomień, a sama trafia pod link Zignorowane pod listą, skąd przycisk Przywróć sprowadza ją z powrotem. Zignorowany plik wraca na listę sam, jeśli znowu się zmieni.
Po naprawie kliknij Skanuj teraz w nagłówku. Pozycja znika z listy, gdy skanowanie przestaje znajdować problem.
Gdy Przegląd mówi o oznakach włamania
Ten nagłówek pojawia się tylko przy wyraźnych dowodach. Chodzi o złośliwy kod w pliku, pliki PHP WordPressa, wtyczek albo motywów różne od oficjalnego wydania, pliki PHP, których nie powinno być, web shell w folderze uploads (czyli skrypt, przez który ktoś steruje serwerem z przeglądarki) albo konto z uprawnieniami administratora, ale bez roli Administrator. Rzeczy, których ShieldWave nie jest pewny, nigdy go nie wywołują.

Nad listą pojawia się wtedy ramka Co zrobić teraz z trzema krokami:
- Jeszcze niczego nie usuwaj i nie edytuj. Rozwiń pozycje w grupie Napraw teraz, żeby zobaczyć, których plików albo kont to dotyczy.
- Z komputera, któremu ufasz, zmień hasła wszystkich administratorów, konta hostingowego i bazy danych.
- Wyślij szczegóły programiście albo firmie hostingowej przyciskiem Kopiuj dla programisty. Mogą przywrócić pliki z czystej kopii zapasowej.
Pospieszne kasowanie plików niszczy ślady, po których da się ustalić, którędy wszedł włamywacz, a ta sama droga zostaje otwarta. Więcej o pierwszej godzinie po włamaniu, także o obowiązkach z RODO, przeczytasz w tekście o objawach zhakowanej strony.
Włączanie zabezpieczeń w Ustawieniach
Ustawienia to jedna strona z menu sekcji po lewej.

Automatyczne skanowania i Powiadomienia e-mail działają od razu po instalacji. Po zaplanowanym skanowaniu mail przychodzi tylko wtedy, gdy pojawił się nowy problem albo stary się pogorszył, i tylko od poziomu, który wybierzesz: Tylko krytyczne, Poważne (domyślnie) albo Także mniejsze. Nigdy dwa razy o tym samym problemie, najwyżej cztery maile dziennie i żadnego po skanowaniu uruchomionym ręcznie, bo wtedy i tak patrzysz na wynik. Osobny przełącznik wysyła wiadomość od razu, gdy ktoś zostaje administratorem.

Ochrona logowania działa od początku przy nowej instalacji. Jeśli wtyczka została zaktualizowana ze starszej wersji, włącz ją tutaj. Po pięciu nieudanych logowaniach z jednego adresu (możesz ustawić od 3 do 50) ten adres czeka 20 minut albo tyle, ile wpiszesz. Blokada jest zawsze tymczasowa, adresów z listy zaufanych nie blokuje nigdy, a adres, z którego włączasz ochronę, sam trafia na tę listę. Ten sam przełącznik ukrywa nazwy użytkowników: formularz logowania przestaje je potwierdzać, a niezalogowani odwiedzający nie wyciągną ich z REST API, mapy witryny ani sztuczką z ?author=.
Logowanie dwuskładnikowe każdy administrator włącza dla swojego konta. Kliknij Skonfiguruj, dodaj klucz do aplikacji uwierzytelniającej, na przykład Google Authenticator albo Authy, i wpisz sześciocyfrowy kod, który pokaże aplikacja. Kod jest wymagany dopiero po takim potwierdzeniu, a na wypadek zgubienia telefonu dostajesz dziesięć jednorazowych kodów odzyskiwania. ShieldWave pokazuje je tylko raz, więc zapisz je w menedżerze haseł.
Wzmocnienie zabezpieczeń ma osobny przełącznik dla każdej ochrony. Wyłącz edytor plików usuwa z kokpitu edytor kodu wtyczek i motywów, więc skradzione hasło administratora nie wystarczy, żeby podłożyć przez niego kod. Aktualizacje działają dalej. Wyłącz XML-RPC zamyka stary interfejs, przez który boty masowo zgadują hasła. Jeśli któraś z Twoich wtyczek go potrzebuje, na przykład Jetpack, ustawienie poda jej nazwę. Te dwa przełączniki nie zmieniają plików, a wyłączenie któregoś od razu przywraca poprzedni stan. Blokuj PHP w folderze uploads dopisuje blokadę do pliku .htaccess w folderze uploads na serwerach Apache i LiteSpeed, a dla nginx i IIS pokazuje regułę do dodania. Sprawdź teraz testuje, czy blokada działa. Wysyłaj nagłówki bezpieczeństwa dodaje nagłówki, których serwer jeszcze nie wysyła. Wirtualne łatki zatrzymują żądania, które wykorzystują znaną lukę zainstalowanej wtyczki, jeśli baza zagrożeń ma na nią łatkę. Aktualizacje bezpieczeństwa, wybierane osobno dla każdej wtyczki w WordPressie 6.6 lub nowszym, pozwalają WordPressowi zainstalować wydanie, które łata znaną lukę Twojej wersji, i cofnąć je, jeśli aktualizacja się nie powiedzie.
Sprawdzanie logowania i Pułapki na spam są wyłączone, dopóki ich nie włączysz. Możesz pozwolić na logowanie kluczem dostępu zamiast hasła, dodać weryfikację antybotową do formularzy logowania, rejestracji i resetu hasła (małą zagadkę, którą rozwiązuje przeglądarka, albo Cloudflare Turnstile z Twoimi kluczami), odrzucać nowe hasła z wycieków danych, przenieść stronę logowania pod wybrany adres i wyłapywać formularze wypełniane przez programy w komentarzach, rejestracji, Contact Form 7 i WPForms. Jeśli któraś z tych funkcji odetnie Ci dostęp, FAQ wtyczki podaje linijkę do wp-config.php albo polecenie WP-CLI, które ją wyłącza.
Zapora żądań też jest wyłączona. Sprawdza żądania na Twoim serwerze lokalnymi regułami: typowe wstrzyknięcia kodu i wgrywanie plików wykonywalnych, blokady adresów IP i krajów, limity żądań. Nie wysyła nigdzie danych o żądaniach. Uruchom ją w trybie Tylko zapis, sprawdź, co by zatrzymała, i po tygodniu albo dwóch przełącz na Blokuj. Tekst o tym, czy WordPress potrzebuje firewalla, wyjaśnia, jak zapora ma się do firewalla u hostingu albo w CDN.
Ochrona w czasie rzeczywistym to trzy funkcje, wyłączone, dopóki ich nie włączysz. Pod każdą jest notka Co jest wysyłane:
- Znane luki w zabezpieczeniach, łącznie z premium ostrzega, gdy wtyczka, motyw albo wersja WordPressa, której używasz, ma opublikowaną lukę, i podaje aktualizację, która ją łata. Wysyła wersję WordPressa oraz nazwy i wersje wtyczek i motywów, nigdy adres Twojej strony.
- Baza zagrożeń na żywo mniej więcej co godzinę pobiera nowe reguły wykrywania złośliwego kodu i wirtualne łatki. Co 15 minut sprawdza też, czy nie ma pilnej aktualizacji, a Ustawienia ostrzegają, gdy baza jest starsza niż 6 godzin. Nie wysyła niczego o Twojej stronie.
- Druga opinia AI ocenia i prostym językiem opisuje plik, którego skaner nie umie ocenić sam, na podstawie krótkiego fragmentu, z którego przed wysłaniem znika adres strony, adresy e-mail i wszystko, co wygląda na hasło albo klucz; wp-config.php nie jest wysyłany nigdy.
Po włączeniu wtyczka raz pyta, czy włączyć ochronę. Włącz ochronę uruchamia sprawdzanie znanych luk, bazę zagrożeń i wirtualne łatki. Druga opinia AI ma tam osobne pole i zostaje wyłączona, jeśli go nie zaznaczysz. Przycisk Włącz ochronę w czasie rzeczywistym na ekranie Przegląd włącza wszystkie trzy funkcje naraz, razem z drugą opinią AI, a przełączniki w Ustawieniach pozwalają wybrać. Jeśli masz tani albo mocno obciążony hosting, w sekcji Dodatkowe sprawdzenia rozwiń Zaawansowane i ustaw Szybkość skanowania na Łagodna.
Historia
Historia zapisuje dzień po dniu, zwykłymi zdaniami, każde skanowanie i każdą zmianę ważną dla bezpieczeństwa: znalezione i naprawione problemy, nowego administratora, zainstalowane, zaktualizowane i usunięte wtyczki, zmianę motywu, aktualizacje WordPressa, blokady po nieudanych logowaniach, wysłane powiadomienia i zmiany ustawień. Od wersji 1.1.27 zapisuje też logowania, założone i usunięte konta, zmiany ról oraz to, kto edytował, opublikował albo usunął wpis lub stronę. Wpis jest nazwany tytułem, nigdy treścią. Przyciski u góry zawężają widok do samych skanowań albo samych zmian na witrynie.

Jeśli pojawi się administrator, którego nikt nie pamięta, Historia pokaże, kiedy to się stało. O to w pierwszej kolejności zapyta programista albo hosting.
Co jest za darmo, a co wymaga konta
Wszystko, co opisuję wyżej, działa bez zakładania konta, a sprawdzenia, zaplanowane skanowania i powiadomienia nie mają limitów. Wtyczka nie łączy się z niczym, gdy ją włączasz albo otwierasz jej ekrany. W trakcie skanowania pyta WordPress.org o oficjalne sumy kontrolne i odpytuje kilka adresów na Twojej stronie. Z shieldwave.io łączą się tylko funkcje ochrony w czasie rzeczywistym i połączenie z kontem, i dopiero po ich włączeniu. Sprawdzanie haseł z wycieków łączy się z serwisem Have I Been Pwned, a Cloudflare Turnstile z Cloudflare, też dopiero po włączeniu.
Konto ShieldWave przydaje się, gdy chcesz mieć swoje strony w jednym miejscu. W Ustawienia > Konto ShieldWave kliknij Połącz z shieldwave.io, zaloguj się albo załóż darmowe konto i potwierdź: wrócisz do WordPressa z gotowym połączeniem, bez kopiowania klucza. Panel na shieldwave.io pokaże wtedy stronę z jej wynikiem i otwartymi problemami, obok skanu zewnętrznego tej samej strony. Każde konto, także darmowe, pokazuje wszystkie połączone strony. Dopóki strona jest połączona, wtyczka dodaje do strony głównej niewidoczny znacznik, dzięki któremu shieldwave.io potwierdza, że domena jest Twoja. Połączenie służy tylko do wysyłania wyników: panel nie może zmienić ustawień ani niczego uruchomić na Twojej stronie, a odłączenie usuwa stronę i jej wyniki z shieldwave.io. Klucz API nadal możesz wkleić w Użyj zamiast tego klucza API. Co dokładnie wysyła każda z dodatkowych usług, opisuje strona wtyczki (po angielsku).
Czego wtyczka nie robi
- Nie jest pełnym firewallem aplikacji webowych. Zapora żądań działa na lokalnych regułach na Twoim serwerze i nie zastępuje filtra u hostingu albo w CDN. Zaraz po instalacji wtyczka odmawia tylko przy złym logowaniu i gdy obcy prosi o listę użytkowników. Resztę blokuje dopiero po włączeniu: żądania zatrzymane przez zaporę albo wirtualną łatkę, formularze, które nie przejdą weryfikacji antybotowej albo wpadną w pułapkę na spam, hasła z wycieków danych, wejścia na stary adres logowania, edytor plików i XML-RPC.
- Nie sprząta zhakowanej strony. Pokazuje, gdzie jest złośliwy kod i co zrobić. Kod wstrzyknięty do motywu, własnej wtyczki, folderu uploads, wpisów albo opcji usuwa dopiero po zatwierdzeniu każdej zmiany, z kopią zapasową i możliwością cofnięcia. Pozostałe zmiany wprowadzasz Ty, programista albo hosting.
- Nie robi kopii zapasowych. Sprawdzenie Kopie zapasowe szuka wtyczki do kopii i mówi, gdy najnowsza kopia jest starsza niż 7 dni. Do przywrócenia strony po włamaniu potrzebna jest czysta kopia trzymana poza serwerem.
- Nie dodaje niczego do stron, które widzą odwiedzający, poza niewidocznym znacznikiem weryfikacyjnym na stronie głównej, dopóki strona jest połączona z kontem. Po włączeniu weryfikacja antybotowa dodaje zagadkę albo Cloudflare Turnstile do formularzy logowania, a pułapki na spam ukryte pole do formularzy komentarzy, rejestracji i kontaktu.
Warto też usunąć wtyczki, z których już nie korzystasz. Tekst o nieaktualnych wtyczkach podpowiada, co zaktualizować najpierw, a co skasować.