Opis
Większość wtyczek bezpieczeństwa włącza ustawienia i zakłada, że działają. Tuning4Web – Security Check sprawdza efekt. Odpytuje kluczowe adresy witryny tak, jak zrobiłby to anonimowy odwiedzający (albo atakujący), odczytuje konfigurację WordPressa i pokazuje, co jest naprawdę wystawione, jak poważne to jest i jak to naprawić.
To nie jest firewall ani skaner złośliwego kodu – działa obok wtyczki bezpieczeństwa, której już używasz. Typowe problemy, które wykrywa, a których nie pokaże ekran ustawień:
- Reguła, która powinna blokować plik, nie działa, bo serwer, cache albo CDN ją ignoruje.
- Kod PHP naprawdę wykonuje się w katalogu uploads. Wtyczka udowadnia to nieszkodliwym, tymczasowym plikiem testowym.
- Nazwy kont wyciekają przez REST API, przekierowania
?author=N, dane oEmbed albo mapę autorów, mimo że jedną z tych dróg wyłączyłeś. - Nagłówki bezpieczeństwa ustawia wtyczka, ale cache stron je pomija.
Wyniki są oceniane na podstawie treści każdej odpowiedzi, nie tylko kodu statusu. Pusta strona wp-config.php, pusty plik index „Silence is golden” i kod 405 z xmlrpc.php nie są zgłaszane jako wycieki. Wtyczka ostrzega też, gdy tryb konserwacji, strony „soft 404” albo firewall blokujący jej własne żądania sprawiają, że odpowiedzi są niemiarodajne.
Testy to żądania z Twojego własnego serwera do witryny, bez logowania. Firewall lub CDN, który traktuje adres IP serwera inaczej niż odwiedzających, może zmienić wynik; wtyczka ostrzega, gdy to wykryje.
Test hardeningu
Każdy niezaliczony test ma poziom ważności (krytyczny, wysoki, średni, niski). Test działa krok po kroku z paskiem postępu, więc sprawdza się także na wolnym hostingu.
- Edytor plików motywów i wtyczek (DISALLOW_FILE_EDIT / DISALLOW_FILE_MODS)
- wp-config.php: czy serwer go blokuje, a co gorsza – czy widać kod źródłowy
- Klucze i sole bezpieczeństwa: brakujące, domyślne, za krótkie lub powtórzone
- Publiczny debug.log
- Wykonywanie PHP w katalogu uploads (opcjonalny test aktywny; tymczasowy plik jest tworzony i od razu usuwany)
- XML-RPC: jakie metody naprawdę udostępnia (pingback, multicall, logowanie)
- Wykrywanie nazw użytkowników: endpoint użytkowników REST API, ?author=N, dane autora w oEmbed, mapa autorów
- Nagłówki bezpieczeństwa (X-Frame-Options / CSP frame-ancestors, X-Content-Type-Options, HSTS) i ujawnianie wersji (Server, X-Powered-By, wersja WordPressa na stronie)
- Listing katalogów wp-includes, uploads i plugins
- readme.html, license.txt, .htaccess, install.php
Przy problemach, które da się naprawić tylko na serwerze, wtyczka pokazuje dokładną regułę Apache lub Nginx do dodania.
Zabezpieczenia (domyślnie wszystkie wyłączone)
Proste przełączniki działające wyłącznie przez hooki WordPressa. Nic nie jest zapisywane w wp-config.php ani .htaccess, więc dezaktywacja wtyczki wyłącza je wszystkie.
- Wyłączenie XML-RPC
- Blokada wykrywania nazw użytkowników (endpointy użytkowników REST, ?author=N, autor w oEmbed, mapa użytkowników)
- Wyłączenie edytora plików motywów i wtyczek
- Wyłączenie haseł aplikacji
- Ukrywanie informacji o wersjach (znacznik generatora, wersja WordPressa w adresach skryptów i stylów, X-Powered-By)
- Podstawowe nagłówki bezpieczeństwa (nosniff, SAMEORIGIN, Referrer-Policy)
- HSTS (tylko witryny HTTPS; włączane dopiero po sprawdzeniu certyfikatu i czyszczone przez max-age=0 po wyłączeniu)
Wymiana kluczy bezpieczeństwa jednym kliknięciem
Zapisuje osiem nowych, losowych kluczy w wp-config.php i wylogowuje wszystkich – to właściwy krok po podejrzeniu włamania. Klucze są generowane na Twoim serwerze. Wymieniane jest tylko tych osiem wartości, plik jest zapisywany w całości naraz, a oryginał zostaje przywrócony, jeśli witryna przestanie odpowiadać. Jeśli klucze są zdefiniowane w inny sposób (np. ze zmiennych środowiskowych), nic nie jest zmieniane.
Skrypty zewnętrzne
Wypisuje skrypty ładowane z innych domen na wybranych stronach: stronie głównej, najnowszych wpisach i stronach, głównej kategorii, najnowszym produkcie i stronach z własnymi szablonami. Skrypty z domen, których nie oznaczono jako zaufane, są wyróżnione do sprawdzenia; listę zaufanych domen prowadzisz sam (domyślnie jest pusta). Pokazuje też, czy każdy skrypt używa Subresource Integrity (SRI). Skanowany jest tylko HTML wysłany przez serwer; skrypty dodawane później przez JavaScript nie są widoczne.
Prywatność
Wtyczka nie łączy się z żadnym zewnętrznym serwerem i nie zbiera ani nie wysyła żadnych danych. Wszystkie testy to żądania z Twojego serwera do Twojej własnej witryny. Nowe klucze bezpieczeństwa są generowane lokalnie.
Instalacja
- Wgraj katalog
tuning4web-security-checkdo/wp-content/plugins/albo zainstaluj wtyczkę z ekranu Wtyczki. - Włącz wtyczkę.
- Przejdź do Ustawienia > Security Check i kliknij „Uruchom test hardeningu”.
Najczęściej zadawane pytania
-
Czy zastępuje moją wtyczkę bezpieczeństwa?
-
Nie. Nie blokuje ruchu ani nie skanuje plików w poszukiwaniu złośliwego kodu. Sprawdza, czy zabezpieczenia, które już masz (z dowolnej wtyczki, od serwera lub hostingu), działają, i uzupełnia luki kilkoma prostymi, odwracalnymi przełącznikami.
-
Dlaczego wynik testu jest szary?
-
Wtyczka nie mogła rozstrzygnąć automatycznie, np. dlatego, że witryna jest w trybie konserwacji albo na każdy nieznany adres odpowiada zwykłą stroną. Sprawdź ten adres ręcznie.
-
Włączyłem przełącznik nagłówków, ale test nadal zgłasza problem. Dlaczego?
-
Cache stron, np. WP Super Cache, serwuje zapisane strony przed załadowaniem wtyczek, więc nagłówki dodawane lub usuwane przez przełącznik nie trafiają do stron z cache. Test wykrywa to, porównując stronę główną z cache ze świeżo wygenerowaną, i pokazuje regułę serwera (.htaccess, Nginx lub ustawienia PHP), która obejmuje każdą odpowiedź.
-
Dlaczego test edytora motywów nie zależy od kodu HTTP?
-
Anonimowe żądanie do edytora zawsze jest przekierowywane na stronę logowania, zanim WordPress odczyta DISALLOW_FILE_EDIT. Dlatego wtyczka odczytuje tę stałą bezpośrednio.
-
Co robi test PHP w uploads?
-
Zapisuje w katalogu uploads mały plik PHP o losowej nazwie, który wyświetla tylko losowy znacznik. Wtyczka wywołuje go raz i od razu usuwa. Jeśli znacznik wróci, PHP działa w uploads i należy to zablokować regułą serwera, którą pokazuje wtyczka. Test można wyłączyć polem wyboru obok przycisku.
-
Czy wymiana kluczy bezpieczeństwa może zepsuć witrynę?
-
Wymieniane jest tylko osiem wartości kluczy. Jeśli któregoś nie da się znaleźć dokładnie jeden raz, nic nie jest zmieniane. Po zapisie wtyczka otwiera stronę główną i przywraca oryginalny plik, jeśli witryna nie odpowiada poprawnie. Wszyscy zostają wylogowani – to zamierzone.
-
Kto może uruchamiać testy i zmieniać ustawienia?
-
Tylko użytkownicy z uprawnieniem manage_options (administratorzy). W sieci multisite klucze może wymienić tylko administrator sieci, bo plik wp-config.php jest wspólny dla całej sieci.
Recenzje
Wtyczka nie ma jeszcze żadnej recenzji.
Kontrybutorzy i deweloperzy
„Tuning4Web – Security Check” jest oprogramowaniem open source. Poniższe osoby miały wkład w rozwój wtyczki.
ZaangażowaniWtyczka „Tuning4Web – Security Check” została przetłumaczona na 1 język. Podziękuj tłumaczom za ich wkład.
Przetłumacz wtyczkę “Tuning4Web – Security Check” na swój język.
Interesuje cię rozwój wtyczki?
Przeglądaj kod, sprawdź repozytorium SVN lub czytaj dziennik rozwoju przez RSS.
Rejestr zmian
1.3.7
- Zmieniono: usunięto wbudowaną listę domen „znanych CDN”. Skrypty zewnętrzne są porównywane z Twoją własną listą zaufanych domen (domyślnie pustą), którą edytujesz w zakładce Skrypty zewnętrzne.
- Zmieniono: reguły serwera używają rzeczywistych ścieżek katalogów uploads i treści.
1.3.6
- Nowość: reguły serwera są pokazywane dla wykrytego serwera (Apache / LiteSpeed lub Nginx); reguły dla innych serwerów są zwinięte poniżej.
- Zmieniono: reguła nagłówków bezpieczeństwa zawiera tylko faktycznie brakujące nagłówki; HSTS ma dołączone ostrzeżenie.
- Zmieniono: sam brak nagłówka HSTS ma niski poziom ważności.
1.3.5
- Nowość: gdy brakuje nagłówków bezpieczeństwa albo widać X-Powered-By, test porównuje stronę główną z cache ze świeżo wygenerowaną i informuje, gdy przyczyną jest tylko cache stron.
- Nowość: reguły serwera (Apache, Nginx, ustawienia PHP) dla nagłówków bezpieczeństwa i ukrywania X-Powered-By, wyświetlane przy wynikach.
- Zmieniono: opisy przełączników wyjaśniają, że strony serwowane z cache przed załadowaniem wtyczek nie dostają nagłówków z przełączników.
1.3.4
- Nowość: ostrzeżenie, gdy witryna odrzuca własne żądanie wtyczki o stronę główną (firewall, ochrona hasłem), bo wyniki „zablokowane” byłyby wtedy niemiarodajne.
- Naprawiono: opis „Ukryj informacje o wersjach” poprawnie wyjaśnia, gdzie X-Powered-By może zostać (cache stron serwowany przed załadowaniem wtyczek, skrypty PHP spoza WordPressa) i jak usunąć go wszędzie.
1.3.3
- Zmieniono: HSTS włącza się dopiero, gdy wersja HTTPS witryny ładuje się z ważnym certyfikatem.
- Nowość: po wyłączeniu HSTS wtyczka przez rok wysyła max-age=0, żeby przeglądarki powracających odwiedzających je zapomniały.
- Zmieniono: ostrzeżenie przy HSTS jest czerwone i wyjaśnia, że trudno je cofnąć.
1.3.2
- Nowość: test wersji WordPressa widocznej na stronie głównej (znacznik generatora, ?ver= w skryptach i stylach).
- Zmieniono: „Ukryj informacje o wersjach” zastępuje też wersję WordPressa w adresach skryptów i stylów krótkim skrótem, więc cache przeglądarek nadal odświeża się po aktualizacjach.
1.3.1
- Zmieniono: aktywny test PHP w uploads ma pole wyboru obok przycisku (domyślnie zaznaczone, wybór jest zapamiętywany).
- Zmieniono: tłumaczenia wczytuje WordPress z translate.wordpress.org.
- Zmieniono: weryfikacja nonce przeniesiona do każdej obsługi AJAX.
1.3.0
- Nowość: test hardeningu działa krok po kroku z paskiem postępu, więc nie grozi mu przekroczenie limitu czasu na wolnym hostingu.
- Nowość: poziomy ważności (krytyczny, wysoki, średni, niski); wyniki są sortowane według ważności.
- Zmieniono: wyniki są zapisywane jako kody i tłumaczone przy wyświetlaniu, więc zawsze są w bieżącym języku panelu.
- Zmieniono: style i skrypty przeniesiono do osobnych plików CSS i JavaScript.
1.2.0
- Zmiana nazwy z „Check External Scripts” na „Tuning4Web – Security Check”.
- Nowość: zakładka Zabezpieczenia z opcjonalnymi, odwracalnymi przełącznikami.
- Nowość: wymiana kluczy bezpieczeństwa jednym kliknięciem.
- Nowe testy: klucze bezpieczeństwa, metody XML-RPC, autor w oEmbed, ?author=N na podstawie prawdziwych odpowiedzi, mapy witryny wykrywane przez robots.txt i sam WordPress, treść debug.log, wykrywanie trybu konserwacji i stron soft 404.
- Zmieniono: wp-config.php jest zgłaszany, gdy serwer go nie blokuje.
- Zmieniono: skan skryptów zewnętrznych jest powtarzalny, traktuje adres z www i bez www jako tę samą witrynę i pokazuje SRI.
- Naprawiono: pobierany log był ucinany, gdy adresy zawierały „&”.
- Bezpieczeństwo: wszystkie akcje przechodzą przez admin-post.php ze sprawdzaniem uprawnień i nonce.
1.1.0
- Dodano test hardeningu WordPressa.
1.0.0
- Pierwsze wydanie jako „Check External Scripts”.
