Skip to content

Wszystko o WordPressie, tworzeniu stron — i nie tylko

⚙️ All In One WP Security — konfiguracja zabezpieczeń WordPress krok po kroku w 16 krokach

⚙️ All In One WP Security — konfiguracja zabezpieczeń WordPress krok po kroku w 16 krokach

Każdego dnia przeciętna witryna WordPress otrzymuje od 200 do 500 nieuprawnionych żądań do pliku wp-login.php. To nie hakerzy w kapturach, to skrypty. Przeszukują internet, znajdują standardową stronę logowania i rozpoczynają zgadywanie: admin/123456, admin/qwerty, admin/hasło_z_wycieku. Prędzej czy później trafiają.

Hosting przed tym nie chroni. Zapora serwerowa widzi prawidłowe żądanie POST do wp-login.php i je przepuszcza, nie rozróżnia, czy hasło wpisuje Pan/Pani, czy bot. Ochrona WordPress i ochrona serwera to dwie różne warstwy, a za tę pierwszą odpowiada Pan/Pani.

All-In-One Security (AIOS) od zespołu UpdraftPlus zamyka tę warstwę całkowicie. Jedna wtyczka zamiast zestawu: zapora, ochrona logowania, audyt plików, blokowanie botów i kopie zapasowe. Milion instalacji, ocena 4.7 na WordPress.org. Darmowa wersja wystarcza do ochrony przeciętnej witryny. Poniżej konfiguracja krok po kroku, od podstaw po eksport ustawień.

💡 Szybki przegląd:

  • Ukryjemy stronę logowania pod niestandardowym adresem URL i włączymy uwierzytelnianie dwuskładnikowe. Ataki brute force odpadną natychmiast.
  • Skonfigurujemy trzy warstwy zapory: htaccess plus reguły PHP plus czarną listę 6G. Warstwowa filtracja żądań.
  • Zablokujemy dostęp do plików serwisowych, wyłączymy edytor PHP w panelu administracyjnym i sprawdzimy uprawnienia do folderów.
  • Włączymy honeypot i wykrywanie błędów 404. Boty będą ujawniać się na samym wejściu, bez captcha dla użytkowników.
  • Zapiszymy gotową konfigurację do pliku, aby przenieść ją między witrynami w minutę.

Krok 1. Usunięcie metadanych WP Generator

Pierwszą rzeczą, która ujawnia wersję WordPress, jest metatag <meta name="generator" content="WordPress X.X.X"> w <head> każdej strony. Atakujący otrzymuje dokładny numer wersji i w kilka sekund dobiera pod nią exploity. AIOS usuwa ten tag jednym przełącznikiem.

Ścieżka: WP SecuritySettingsGeneral Settings. Włączamy Remove WP Generator Meta Info i zapisujemy. Proszę sprawdzić kod źródłowy strony głównej (Ctrl+U), linia z generator powinna zniknąć. Przy okazji w tej samej sekcji proszę wyłączyć Enable Info Comments, AIOS domyślnie dodaje komentarze HTML z informacjami serwisowymi, je również lepiej usunąć.

Ustawienia usuwania meta-tagu WP Generator w AIOS

Krok 2. Blokowanie prób autoryzacji

Brute force na wp-login.php, atak numer jeden pod względem częstotliwości. Boty sprawdzają setki haseł na minutę, generując obciążenie serwera i bazy danych. Prędzej czy później słabe hasło zostaje odgadnięte, zwłaszcza jeśli użytkownik admin lub redaktor używa qwerty123.

Ścieżka: WP SecurityUser LoginLogin Lockdown. Włączamy Enable Login Lockdown i ustawiamy: maksymalnie 5 prób, blokada IP na 60 minut, reset licznika po 24 godzinach. W przypadku witryn z kilkoma administratorami proszę włączyć Notify by Email, powiadomienie o blokadzie przychodzi natychmiast. Jeśli widzi Pan/Pani częste powiadomienia, proszę zmienić slug strony logowania (krok 14).

Ustawienia limitu prób logowania w AIOS

Krok 3. Ręczne zatwierdzanie nowych rejestracji

Jeśli na stronie jest otwarta rejestracja, bez tego ustawienia każdy bot utworzy konto w sekundę. Konta spamowe gromadzą się tysiącami, zaśmiecając bazę danych i tworząc powierzchnię do ataków poprzez eskalację uprawnień.

Ścieżka: WP SecurityUser RegistrationManual Approval. Włączamy Enable Manual Approval. Teraz każde nowe konto przed aktywacją czeka na zatwierdzenie przez administratora. W tej samej sekcji proszę skonfigurować captcha dla formularzy rejestracyjnych, dodatkową barierę, której bot nie pokona.

Ręczna moderacja rejestracji użytkowników w AIOS

Krok 4. Zmiana prefiksu tabel bazy danych

Prefiks wp_, standard dla wszystkich instalacji WordPress. Iniekcje SQL i skrypty masowego włamania celują właśnie w niego: gdy exploit zna nazwy tabel (wp_users, wp_options), atak staje się precyzyjny, a nie ślepy.

Ścieżka: WP SecurityDatabaseDB Prefix. Widzimy bieżący prefiks. Jeśli wp_, klikamy Change DB Table Prefix. Wtyczka zaproponuje losowy ciąg lub pozwoli wprowadzić własny (4-6 znaków, tylko litery łacińskie i podkreślenia). Przed uruchomieniem koniecznie proszę wykonać kopię zapasową bazy danych (krok 5). Proces trwa 5-10 sekund na przeciętnej witrynie, ale przywrócenie stanu bez kopii zapasowej jest niemożliwe.

Zmiana domyślnego prefiksu tabel bazy danych WordPress

Krok 5. Kopia zapasowa bazy danych

Przed jakimikolwiek zmianami strukturalnymi, zmianą prefiksu, czyszczeniem rewizji, aktualizacją rdzenia, kopia zapasowa jest obowiązkowa. AIOS jest zintegrowany z UpdraftPlus, tworzenie kopii zapasowej uruchamia się z tego samego interfejsu.

Ścieżka: WP SecurityDatabaseDatabase Backup. Klikamy Create Database Backup, plik jest zapisywany lokalnie. Proszę skonfigurować automatyczne wysyłanie do chmury przez UpdraftPlus (Google Drive, Dropbox, S3) i harmonogram dzienny. Przywrócenie witryny po włamaniu bez kopii zapasowej jest praktycznie niemożliwe, a z AIOS + UpdraftPlus to jeden przycisk.

Tworzenie kopii zapasowej bazy danych przez AIOS

Krok 6. Sprawdzenie uprawnień do katalogów i plików

Nieprawidłowe uprawnienia dostępu, 777 na wp-config.php, 666 na folderze uploads, otwarty zapis w wp-content, otwierają bezpośrednią ścieżkę do zapisu złośliwego kodu. Jeśli atakujący uzyskał dostęp do motywu przez lukę, nieprawidłowe uprawnienia pozwalają mu modyfikować pliki systemowe.

Ścieżka: WP SecurityFilesystem SecurityFile Permissions. Uruchamiamy skanowanie. Wszystkie wiersze powinny być zielone. Przy czerwonym lub żółtym wierszu klikamy Set Recommended Permissions przy problematycznym pliku lub folderze. Po poprawieniu proszę ponownie uruchomić skanowanie, powinno być czysto.

Skanowanie uprawnień do plików i folderów WordPress

Krok 7. Wyłączenie edycji PHP z panelu administracyjnego

Wbudowany edytor motywów i wtyczek, wp-admin/theme-editor.php oraz wp-admin/plugin-editor.php, to prosta droga do wykonania dowolnego kodu. Jeśli atakujący uzyska dostęp do panelu administracyjnego, edytor pozwala dopisać powłokę PHP w pliku functions.php i przejąć kontrolę nad serwerem. Prawowitemu deweloperowi ten edytor nie jest potrzebny, zmiany wprowadza się przez FTP/SFTP lub wdrożenie.

Ścieżka: WP SecurityFilesystem SecurityPHP File Editing. Włączamy opcję Disable PHP File Editing. Po zapisaniu pozycje „Edytor motywów" i „Edytor wtyczek" znikną z menu „Wygląd" i „Wtyczki". Jeśli trzeba wprowadzić zmianę, wyłącznie przez menedżera plików hostingu lub SSH.

Wyłączenie edytora plików PHP motywów i wtyczek WordPress

Krok 8. Blokada dostępu do plików serwisowych WordPressa

Pliki readme.html, license.txt, wp-config-sample.php i debug.log ujawniają wersję CMS, strukturę instalacji i ścieżki wewnętrzne. debug.log jest szczególnie niebezpieczny: w trybie WP_DEBUG zapisuje ścieżki bezwzględne serwera oraz ślady stosu błędów z nazwami wtyczek.

Ścieżka: WP SecurityFilesystem SecurityWP Info Files. Zaznaczamy wszystkie cztery pozycje: readme.html, license.txt, wp-config-sample.php, debug.log. Zapisujemy. Teraz przy bezpośrednim żądaniu yoursite.com/readme.html serwer zwróci błąd 403 Forbidden. Są to reguły .htaccess, działają na poziomie Apache/Nginx przed uruchomieniem PHP.

Blokowanie dostępu do plików serwisowych WordPress przez AIOS

Krok 9. Podstawowe funkcje zapory sieciowej

Zapora AIOS ma trzy poziomy ochrony. Reguły .htaccess blokują żądanie przed przekazaniem do PHP (najszybsza warstwa). Reguły PHP filtrują wektory XSS, wyłączają XML-RPC i kanały RSS. Trzecia warstwa odcina fałszywe boty Google na podstawie user-agent.

Ścieżka: WP SecurityFirewallBasic Firewall. Włączamy:

  • Enable Basic Firewall Protection, ogólna aktywacja;
  • Block Fake Googlebots, boty z podrobionym user-agent Googlebota są odcinane;
  • Disable RSS and Atom Feeds, jeśli strona nie korzysta z RSS, wyłączamy (parsowanie treści);
  • Disable Directory Listing, zakaz wyświetlania przez Apache zawartości folderów bez pliku index.php.

Tutaj również wyłączamy XML-RPC, jeśli nie korzystają Państwo z aplikacji mobilnej WordPress, Jetpacka ani trackbacków. Dla większości stron-blogów w 2026 roku XML-RPC nie jest potrzebny.

Podstawowe ustawienia trójpoziomowej zapory sieciowej AIOS

Krok 10. Dodatkowe reguły zapory sieciowej

Rozszerzone reguły .htaccess zamykają jeszcze kilka wektorów ataku: bezpośredni dostęp do wp-config.php i .htaccess z przeglądarki, ograniczenie rozmiaru przesyłanych plików, wyłączenie sygnatury serwera.

Ścieżka: WP SecurityFirewallAdditional Firewall. Włączamy:

  • Deny Access to wp-config.php, kluczowy plik konfiguracyjny jest niedostępny przez HTTP;
  • Deny Access to.htaccess, plik reguł serwera jest zamknięty dla odczytu;
  • Disable Server Signature, Apache przestaje podawać wersję w nagłówkach Server;
  • Limit File Upload Size, ustawiamy 10 MB (wystarczająco na obrazy, za mało na wgranie archiwum z shellem).

Reguły są zapisywane bezpośrednio w .htaccess. Po zapisaniu proszę otworzyć witrynę w oknie incognito i upewnić się, że wszystko działa.

Dodatkowe reguły htaccess do ochrony WordPress

Krok 11. Czarna lista 6G Firewall

6G Firewall od Perishable Press to restrykcyjny zestaw reguł .htaccess, które blokują szkodliwe wzorce w adresach URL i ciągach zapytań: iniekcje SQL, próby dołączenia plików (../../wp-config.php), wektory XSS oraz sygnatury skanerów podatności. Reguły są statyczne, nie wymagają aktualizacji, wzorce ataków nie zmieniają się od lat.

Ścieżka: WP SecurityFirewall6G Blacklist. Włączamy Enable 6G Firewall Protection i zapisujemy. Jeśli po aktywacji jakaś legalna wtyczka przestała działać (rzadko, ale zdarza się przy wtyczkach z niestandardowymi wzorcami URL), proszę dodać ją do białej listy: FirewallWhitelist.

Aktywacja 6G Firewall od Perishable Press w AIOS

Krok 12. Zapobieganie hotlinkingowi obrazów

Hotlinking to sytuacja, gdy inna witryna osadza Pana/Pani obraz przez bezpośredni link (<img src="https://yoursite.com/uploads/photo.jpg">). Pana/Pani serwer uczciwie wysyła obrazek, zużywając transfer i zasoby procesora, a odwiedzający widzi treść na cudzej stronie. Dla witryn z autorskimi zrzutami ekranu i fotografiami jest to odczuwalne.

Ścieżka: WP SecurityFirewallPrevent Hotlinks. Włączamy Prevent Hotlinking. Proszę dodać domeny wyjątków (google.com, facebook.com, twitter.com), aby podglądy w mediach społecznościowych i wyszukiwarkach nadal działały. AIOS zapisuje reguły w .htaccess, zabraniając bezpośrednich żądań do obrazów z nagłówkiem Referer obcej domeny.

Ochrona przed hotlinkowaniem obrazów WordPress przez AIOS

Krok 13. Wykrywanie błędów 404

Masowe błędy 404 to oznaka skanowania podatności. Bot sprawdza kolejno /wp-admin/, /admin/, /backup.zip, /phpmyadmin/ i setki innych typowych ścieżek, badając powierzchnię ataku. AIOS śledzi takie żądania, wiąże je z adresem IP i blokuje źródło.

Ścieżka: WP SecurityScanner404 Detection. Włączamy Enable 404 Detection. Próg: 20 błędów w ciągu 15 minut → tymczasowy ban na 30 minut; 50 błędów w ciągu 15 minut → ban permanentny. Zakładka Logged 404 Events pokaże bieżącą listę podejrzanych żądań, co jest przydatne do zrozumienia, co dokładnie jest skanowane na Pana/Pani witrynie.

Ustawienia wykrywania błędów 404 i blokowania skanerów w AIOS

Krok 14. Zmiana adresu strony logowania

/wp-admin i /wp-login.php to standardowe punkty wejścia, znane każdemu botowi. Bez tego kroku ochrona przed brute force (krok 2) działa, ale ataki i tak nadchodzą tysiącami, boty pukają do znanych drzwi. Zmiana nazwy strony logowania usuwa sam cel.

Ścieżka: WP SecurityBrute ForceRename Login Page. Wprowadzamy niestandardowy slug: nie mniej niż 4 znaki, nie admin, login ani wp-*. Dobrym wariantem jest manage- plus 6 losowych liter, na przykład manage-xk7qpd. Po zapisaniu natychmiast proszę sprawdzić nowy URL i dodać go do zakładek. Standardowy wp-login.php zostanie wyłączony, jeśli zapomni Pan/Pani sluga, przywrócenie będzie wymagało użycia FTP (przez usunięcie lub zmianę nazwy wtyczki).

Zmiana nazwy strony logowania WordPress na niestandardowy URL w AIOS

Krok 15. Pułapka Honeypot dla botów

Honeypot to ukryte pole w formularzu logowania. Człowiek go nie widzi (reguła CSS display:none lub pozycjonowanie poza ekranem), ale bot znajduje je podczas analizy kodu HTML i wypełnia. AIOS widzi wypełnione ukryte pole i blokuje próbę jako nieludzką. Żadnej captchy, użytkownik w ogóle nie wie o weryfikacji.

Ścieżka: WP SecurityBrute ForceHoneypot. Włączamy Enable Honeypot Protection. Pole jest dodawane do formularza wp-login.php automatycznie i działa cicho w tle. Według danych Team Updraft, honeypot odsiewa zdecydowaną większość automatycznych botów, nie potrzebują one konkretnie Pana/Pani panelu administracyjnego, po prostu szukają standardowego formularza i wypełniają wszystkie pola po kolei.

Aktywacja pułapki honeypot do ochrony formularza logowania WordPress

Krok 16. Zakaz osadzania witryny w ramkach

Clickjacking to atak, w którym Pana/Pani witryna jest ładowana w przezroczystym <iframe> na stronie atakującego. Użytkownik myśli, że klika w interfejs, a w rzeczywistości wchodzi w interakcję z formularzem obcej witryny. Nagłówek X-Frame-Options: SAMEORIGIN zabrania osadzania.

Ścieżka: WP SecurityFirewallPrevent Framing. Włączamy Prevent Your Site From Being Displayed in a Frame. AIOS dodaje nagłówek HTTP X-Frame-Options: SAMEORIGIN do wszystkich odpowiedzi serwera. Proszę sprawdzić: curl -I https://yoursite.com, nagłówek powinien być widoczny w odpowiedzi. Dla witryn z formularzem logowania, koszykiem lub panelem administracyjnym ten krok jest krytyczny.

Ochrona przed clickjackingiem przez nagłówek X-Frame-Options w AIOS

Eksport gotowej konfiguracji dla innych witryn

Jeśli administruje Pan/Pani kilkoma witrynami, import-eksport oszczędza godziny. AIOS zapisuje całą konfigurację do pliku tekstowego, który jest wgrywany na inną witrynę jednym kliknięciem.

Ścieżka: WP SecuritySettingsImport/Export. Klikamy Export Settings, otrzymują Państwo plik .txt ze wszystkimi włączonymi opcjami i ich wartościami. Plik można edytować przed importem na innej witrynie: zastąpić email dla powiadomień bezpieczeństwa oraz slug strony logowania na aktualne dla docelowej witryny.

Import: WP SecuritySettingsImport/ExportImport Settings → wybierają Państwo plik. Wszystkie 16 kroków zostanie zastosowanych automatycznie w kilka sekund, nie trzeba przechodzić każdego ekranu od nowa.

⁉️🤔 Często zadawane pytania

Czy AIOS jest potrzebny, jeśli hosting obiecuje „pełną ochronę"?

Hosting chroni serwer: poziom systemu operacyjnego, zapory sieciowe, filtrację DDoS. AIOS chroni aplikację WordPress: brute-force panelu administracyjnego, iniekcje we wtyczkach, podatności przestarzałych motywów. Zapora serwerowa nie widzi, że bot próbuje odgadnąć hasła do wp-login.php, widzi jedynie legalne żądania POST. Poziomy te nie pokrywają się, potrzebne są oba. Strona na „chronionym" hostingu bez wtyczki bezpieczeństwa pozostaje podatna na ataki na poziomie CMS.

Czy AIOS będzie kolidować z Cloudflare lub innym WAF?

Nie, działają one na różnych poziomach. Cloudflare to poziom 7 (proxy HTTP), filtruje ruch przed dotarciem na serwer. AIOS to poziom aplikacji (PHP, .htaccess), działa po tym, jak żądanie dotrze do WordPressa. Jedyny niuans: jeśli korzystają Państwo z Cloudflare, należy włączyć Enable IP Detection w AIOS, aby wtyczka widziała rzeczywisty adres IP odwiedzającego z nagłówka X-Forwarded-For, a nie IP proxy.

Czy można usunąć AIOS po konfiguracji, skoro reguły pozostaną w.htaccess?

Nie. Reguły .htaccess fizycznie pozostaną w pliku, ale bez monitorowania i aktualizacji staną się przestarzałe. Co gorsza: honeypot, zmiana nazwy strony logowania, blokada edytora PHP i uwierzytelnianie dwuskładnikowe działają tylko wtedy, gdy wtyczka jest aktywna, to logika PHP, a nie statyczne reguły. Usunięcie wtyczki przywraca standardowy wp-login.php i wyłącza całą ochronę logowania.

Czy strona ulegnie awarii, jeśli włączy się wszystkie 16 kroków naraz?

Na zdecydowanej większości stron nie. Jednak praktyczna rekomendacja: włączać blokami po trzy-cztery kroki, sprawdzając działanie strony po każdym bloku. Szczególną ostrożność należy zachować przy 6G Firewall (krok 11) i zmianie prefiksu tabel (krok 4, kopia zapasowa jest obowiązkowa). Przez lata działania wtyczki na milionie instalacji nie odnotowano krytycznych konfliktów z popularnymi motywami i wtyczkami.

Co daje wersja premium AIOS w porównaniu z darmową?

Trzy kluczowe rozszerzenia: uwierzytelnianie dwuskładnikowe z elastycznymi politykami (obowiązkowe TFA dla administratorów po N dniach, konfiguracja częstotliwości ponownego żądania), skaner złośliwego kodu z powiadomieniami o trafieniu na czarne listy Google oraz blokada według kraju (odmowa dostępu na podstawie geo-IP). Darmowa wersja jest wystarczająca do ochrony bloga lub strony firmowej. Dla sklepu internetowego z poufnymi danymi klientów lepiej wybrać Premium.

Co zrobić, jeśli zapomniałem niestandardowy URL strony logowania?

Należy połączyć się z serwerem przez FTP/SFTP, przejść do /wp-content/plugins/all-in-one-wp-security-and-firewall/ i tymczasowo zmienić nazwę folderu wtyczki. To wyłączy AIOS i przywróci standardowy wp-login.php. Następnie zalogować się do panelu administracyjnego, zmienić nazwę folderu z powrotem, aktywować wtyczkę i ustawić nowy slug. Aby nie zapomnieć, warto zapisać URL w menedżerze haseł natychmiast po utworzeniu.

Czy warto konfigurować AIOS w 2026 roku, czy są już lepsze alternatywy?

Po latach AIOS pozostaje najbardziej zrównoważoną darmową wtyczką bezpieczeństwa WordPress: milion instalacji, aktywny rozwój, regularne aktualizacje pod nowe wersje rdzenia. Alternatywy takie jak Wordfence czy Solid Security również są potężne, ale cięższe.

Powyższe 16 kroków zajmuje 15-20 minut. Rezultat: ukryta strona logowania, trzy warstwy zapory sieciowej, niewidoczny honeypot i gotowy konfig do sklonowania na następną stronę.

Minimalny zestaw, bez którego ochrony nie można uznać za kompletną:

  • Baza: kroki 1, 2, 9, 14, maskowanie wersji, ochrona przed brute-force, podstawowa zapora i ukryta strona logowania;
  • Poziom serwera: kroki 7, 8, 10, 11, blokada edytora PHP, blokowanie plików serwisowych, dodatkowe reguły i 6G;
  • Głęboka ochrona: kroki 4, 6, 12, 15, prefiks tabel, uprawnienia dostępu, anti-hotlink, honeypot;
  • Perymetr: kroki 3, 5, 13, 16, moderacja rejestracji, kopie zapasowe, detekcja 404, ochrona przed clickjackingiem.

Po skonfigurowaniu jednej strony proszę wyeksportować konfigurację i zaimportować ją na pozostałe w minutę. Raz na kwartał warto wejść w AIOSDashboard: wskaźnik bezpieczeństwa pokaże, czy któreś ustawienie nie „odpadło" po aktualizacji rdzenia.