Domyślna konfiguracja WordPressa sprawia, że numer jego wersji jest publicznie widoczny w kodzie źródłowym Twojej strony. Choć może się to wydawać nieistotnym szczegółem, w rzeczywistości jest to cenna informacja dla potencjalnych atakujących.

W tym kompleksowym poradniku pokażemy, dlaczego warto ukryć wersję WordPressa, jak to zrobić krok po kroku za pomocą kodu lub wtyczek, a także wyjaśnimy, jakie są ograniczenia tej metody.

Główne zagrożenie: Jak atakujący wykorzystują numer wersji?

Ujawnianie numeru wersji Twojego WordPressa to proszenie się o kłopoty. Działa to na zasadzie “security through obscurity” (bezpieczeństwo przez zaciemnianie), która sama w sobie nie jest wystarczającą ochroną, ale stanowi ważną warstwę obrony.

Główne zagrożenie polega na tym, że hakerzy używają zautomatyzowanych botów do skanowania tysięcy stron internetowych w poszukiwaniu konkretnych, przestarzałych wersji WordPressa, które posiadają znane luki w zabezpieczeniach.

Przykład ataku: Załóżmy, że wersja WordPress 5.7.1 miała krytyczną lukę bezpieczeństwa, która została naprawiona w wersji 5.7.2. Atakujący może:

  1. Użyć skryptu, aby znaleźć wszystkie strony, które w kodzie źródłowym deklarują wersję 5.7.1.
  2. Uruchomić zautomatyzowany atak wykorzystujący tę konkretną lukę na wszystkich znalezionych stronach.

Ukrywając numer wersji, Twoja strona nie pojawi się na takiej liście, co znacznie zmniejsza ryzyko masowego, zautomatyzowanego ataku.

Gdzie WordPress ujawnia swoją wersję?

Zanim przejdziemy do rozwiązań, zidentyfikujmy, gdzie te informacje się pojawiają:

  1. Meta tag generator: W sekcji <head> Twojej strony znajduje się linia podobna do tej: <meta name="generator" content="WordPress 6.5.5" />.
  2. Parametry ver=x.x.x: Na końcu linków do plików CSS i JavaScript dołączany jest parametr wersji, np. style.css?ver=6.5.5.
  3. Kanały RSS: Pliki feed również mogą zawierać informację o wersji generatora.

Metoda 1: Modyfikacja pliku functions.php (Zalecane)

Jest to najczystsza i najbardziej wydajna metoda, ponieważ nie wymaga instalowania dodatkowej wtyczki. Polega na dodaniu kilku linijek kodu do pliku functions.php Twojego motywu.

Ostrzeżenie: Edytuj plik functions.php bezpiecznie!

  • Używaj motywu potomnego (Child Theme): Zmiany wprowadzane bezpośrednio w pliku functions.php głównego motywu zostaną nadpisane i utracone podczas jego aktualizacji. Zawsze pracuj na motywie potomnym.
  • Zrób kopię zapasową: Przed wprowadzeniem jakichkolwiek zmian, stwórz kopię zapasową pliku.
  • Błędy mogą uszkodzić stronę: Nawet drobny błąd składni (np. brakujący średnik) może spowodować “biały ekran śmierci” (white screen of death).

Krok-po-kroku: Jak dodać kod?

  1. Przejdź do panelu administracyjnego WordPress.
  2. Wybierz z menu Wygląd > Edytor plików motywu.
  3. Po prawej stronie, w sekcji “Pliki motywu”, znajdź i kliknij functions.php (Funkcje motywu).
  4. Przewiń na sam dół pliku i wklej poniższy kod.
  5. Kliknij “Zaktualizuj plik”.

Kompletny kod do functions.php

/**
 * Ukrywa wersję WordPressa, aby zwiększyć bezpieczeństwo.
 * 
 * Ta funkcja zbiorcza wykonuje trzy zadania:
 * 1. Usuwa meta tag 'generator' z sekcji <head>.
 * 2. Usuwa informację o wersji z kanałów RSS.
 * 3. Usuwa parametr '?ver=' z adresów URL skryptów (JS) i stylów (CSS).
 */
function uper_remove_wordpress_version() {
    // Usuń meta tag generator
    remove_action('wp_head', 'wp_generator');

    // Usuń wersję z RSS
    add_filter('the_generator', '__return_empty_string');

    // Usuń wersję z CSS i JS
    // Ta funkcja-callback zostanie użyta dla obu filtrów
    $remove_version_callback = function($src) {
        if (strpos($src, 'ver=')) {
            $src = remove_query_arg('ver', $src);
        }
        return $src;
    };
    
    add_filter('style_loader_src', $remove_version_callback);
    add_filter('script_loader_src', $remove_version_callback);
}
add_action('after_setup_theme', 'uper_remove_wordpress_version');

Zauważ, że cały kod został opakowany w jedną funkcję, która jest uruchamiana przez hak after_setup_theme, co jest dobrą praktyką.

Metoda 2: Użycie wtyczek bezpieczeństwa (dla początkujących)

Jeśli nie czujesz się komfortowo edytując kod, możesz skorzystać z wtyczek, które wykonają tę pracę za Ciebie. Jest to również dobre rozwiązanie, ponieważ oferują one kompleksowe zabezpieczenia.

  1. WP Hide & Security Enhancer: To wtyczka specjalizująca się w ukrywaniu różnych domyślnych ścieżek i informacji WordPressa.
  2. Wordfence Security: Jeden z najpopularniejszych kombajnów do zabezpieczeń. Chociaż jego głównym celem jest zapora (firewall) i skaner malware, opcje “Hardening” często zawierają funkcję ukrywania wersji.
  3. Sucuri Security: Kolejna popularna wtyczka, która w sekcji “Hardening” pozwala na wyłączenie pokazywania wersji WordPressa jednym kliknięciem.

Zaletą korzystania z kompleksowej wtyczki jest to, że ukrycie wersji to tylko jedna z wielu funkcji ochronnych, które zyskujesz.

Ograniczenia metody: Czego ukrycie wersji NIE zapewni?

Musisz mieć świadomość, że “bezpieczeństwo przez zaciemnianie” ma swoje granice. Zdeterminowany haker wciąż może próbować odgadnąć wersję Twojego WordPressa, na przykład poprzez:

  • Analizę unikalnych dla danej wersji plików JavaScript lub ich zawartości.
  • Sprawdzanie zmian w strukturze HTML, które są charakterystyczne dla konkretnych wydań.
  • Analizę pliku readme.html w głównym katalogu, jeśli nie został usunięty.

Ukrywanie wersji skutecznie chroni przed masowymi, zautomatyzowanymi atakami, ale nie jest substytutem solidnej strategii bezpieczeństwa.

Podsumowanie: Aktualizacje to Twój absolutny priorytet

Ukrycie wersji WordPressa to mądry i prosty krok, który utrudnia życie amatorom i zautomatyzowanym botom. Pamiętaj jednak, że żadna technika ukrywania nie zastąpi najważniejszej zasady bezpieczeństwa: regularnych aktualizacji.

Zawsze utrzymuj rdzeń WordPressa, wtyczki i motywy w najnowszych, stabilnych wersjach. To właśnie aktualizacje zawierają poprawki krytycznych luk bezpieczeństwa.


Często zadawane pytania

Czy ukrycie wersji WordPressa wpłynie na działanie mojej strony?

Nie, przedstawione metody są bezpieczne i nie powinny wpływać na funkcjonalność Twojej strony. Usuwają one jedynie metadane, które nie są potrzebne do prawidłowego renderowania witryny. W rzadkich przypadkach niektóre, źle napisane wtyczki mogą polegać na parametrze `ver`, ale jest to bardzo mało prawdopodobne.

Czy to wystarczy, aby moja strona była w 100% bezpieczna?

Absolutnie nie. To tylko jeden z wielu kroków w procesie zabezpieczania strony (tzw. "hardening"). Kluczowe są regularne aktualizacje, stosowanie silnych haseł, ograniczanie prób logowania, posiadanie zapory (firewall) i regularne skanowanie w poszukiwaniu złośliwego oprogramowania.

Po dodaniu kodu wersja nadal jest widoczna. Dlaczego?

Najczęstszą przyczyną jest buforowanie (caching). Wyczyść pamięć podręczną swojej strony (np. wtyczką typu WP Super Cache, W3 Total Cache), pamięć podręczną na poziomie serwera (jeśli jest), a także pamięć podręczną przeglądarki. W ostateczności sprawdź, czy kod nie został nadpisany przez inną wtyczkę lub czy został dodany poprawnie.