WordPress rozpycha się w Internecie coraz mocniej, co patrząc na prostotę obsługi (od strony użytkownika końcowego, który ma zarządzać stroną), czy ilość modyfikacji, dodatków i poradników nie powinno chyba nikogo specjalnie dziwić. Sam swoim klientom bardzo często polecam właśnie stronę na WordPressie, gdyż w późniejszej pracy ze stroną okazuje się on bardzo prosty i przyjemny, a zarazem oferuje pełen zakres możliwości.
Dlatego warto zadbać dodatkowo o bezpieczeństwo – bo jak to często bywa, nim coś jest popularniejsze, tym więcej ataków…
Zabezpieczamy WordPressa
Opisując metody na zabezpieczenie WordPressa raczej skupię się na tych prostszych, które mogę wdrożyć u siebie relatywnie prosto również mniej zaawansowani użytkownicy, którzy często swoją stronę mają na hostingu współdzielonym, co też miało duży wpływ na wybór metod/sposobów.
Hasło na wp-admin
Jedna z najprostszych, a zarazem relatywnie skuteczna metoda to skorzystanie z możliwości jakie daje modyfikacja pliku .htaccess, i ustawienie dodatkowego loginu i hasła przy próbie dostępu do katalogu zarządzania Wordpresem, czyli „wp-admin”. A z racji tego, że jest to zabezpieczenie „po stronie webserwera”, to nie tak łatwo je obejść.
W przypadku serwera Nginx wprawdzie nie mamy obsługi plików .htaccess, ale i z tym sobie poradzimy :-)
Mniej doświadczeni lub bez dostępu do shella mogą to zazwyczaj zrobić z panelu zarządzania kontem/hostingiem – co dla większości zapewne będzie lepszy/łatwiejszym rozwiązaniem:
DirectAdmin:
- Wybieramy dowolną domenę na koncie > Katalogi na hasło > Znajdź katalog do zabezpieczenia hasłem
cPanel:
- Bezpieczeństwo > Ochrona katalogów > Wybierz katalog który chcesz zabezpieczyć klikając na jego nazwę. Aby przejść do innego folderu, kliknij na jego ikonę.
Apache2 i Nginx
Zawsze też możemy ręczne zmodyfikować odpowiednie pliki na serwerze (Apache2 można również na hostingu współdzielonym, Nginx raczej tylko własny serwer – choć nie kojarzę ofert hostingów współdzielonych na Ngonx ;-)).
Apache2: Blokada w .htaccess
W przypadku tego webserwera najprościej wykorzystać do tego celu dodatkowy plik .htaccess, który tym razem umieścimy w katalogu „wp-admin”, a w którym wystarczy dodać te kilka linijek:
AuthType Basic
AuthName "STOP"
AuthUserFile /ścieżka/do/pliku/.htpasswd
Require valid-user
Nginx: Blokada w pliku konfiguracyjnym domeny (vHost)
W przypadku Nginx musimy zmodyfikować plik danego vHosta (strony/domeny), dodając do niego taki kod:
location ~* wp-login.php {
auth_basic "STOP";
auth_basic_user_file /ścieżka/do/pliku/.htpasswd;
}
Z racji tego, że jest to modyfikacja w pliku vHosta – musimy zrestartować serwer Nginx/lub odświeżyć jego konfigurację:
sudo service nginx restart
sudo service nginx reload
Zabezpieczamy plik konfiguracji (wp-config.php) WordPressa
Kolejnym sposobem podniesienia bezpieczeństwa WordPressa jest blokada „pobrania” pliku z jego konfiguracją, gdzie znajdują się m.in. dane logowania do bazy danych.
W przypadku serwera Apache2 edytujemy plik .htaccess i dodajemy:
<files wp-config.php>
order allow,deny
deny from all
</files>
W przypadku Nginx musimy zmodyfikować plik danego vHosta (strony/domeny):
location ~* wp-config.php {
deny all;
}
Z racji tego, że jest to modyfikacja w pliku vHosta – musimy zrestartować serwer Nginx/lub odświeżyć jego konfigurację:
sudo service nginx restart
sudo service nginx reload
Zabezpieczamy plik wp-login.php
Od razu warto też zablokować – zabezpieczyć hasłem – dostęp do pliku wp-login.php, który jest wywoływany przy każdej próbie logowania.
Wprawdzie zabezpieczenie na „wp-admin” i tak zablokuje dostęp, ale „złośliwe jednostki” będą kierować się bezpośrednio na ten plik by spróbować złamać hasło, i nawet jeśli zablokujemy ich później na „wp-admin”, to po co niepotrzebnie obciążać sobie serwer tymi próbami…
W przypadku serwera Apache2 edytujemy plik .htaccess i dodajemy:
<files wp-login.php>
AuthType Basic
AuthName "STOP"
AuthUserFile /ścieżka/do/pliku/.htpasswd
Require valid-user
</files>
Wtyczki do WordPressa to nie tylko dodatkowe funkcje
Jeśli chodzi o wtyczki to najpierw kasujemy wszystkie wtyczki które nie są nam potrzebne, z których nie korzystamy – nawet te wyłączone.
Oprócz tego warto zainstalować jakąś wtyczkę która zadba dodatkowo o bezpieczeństwo serwisu, np.:
Warto też rozważyć dodanie do naszej strony dwuskładnikowe uwierzytelnienie, np. za pomocą usługi/funkcji Google Authenticator (oprócz loginu i hasła trzeba będzie podać dodatkowy kod – generowany raz na 30 sekund).
Konto administratora (admin)
Elementem który osobiście stosuje zawsze, to zmiana nazwy (loginu) dla domyślnego konta administratora (admin), co najprościej zrobić już na etapie instalacji/konfiguracji WordPressa – zamiast nazwy konta administratora (admin) warto wpisać (wybrać) inną nazwę.
Ale na późniejszym etapie też jest to możliwe, choć będzie troszkę trudniejsze…
Edycja bazy danych
- Należy zalogować się do phpMyAdmin
- Wybrać odpowiednią bezę danych (jeśli masz wątpliwości w pliku wp-config.php będzie jej nazwa)
- Odnaleźć pozycję „wp_users” i kliknąć przyporządkowanej tej pozycji ikonę „Przeglądaj”
Powinna wyświetlić się lista wszystkich użytkowników, na której należy odszukać użytkownika „admin” i wybrać ikonę „edytuj” (ołówek) by przejść do okna dialogowego w którym będzie można zmienić (m.in.) nazwę tego użytkownika (login):
Można też do tego celu wykorzystać jedną z dostępnych wtyczek, które pozwalają dokonać zmiany nazwy użytkownika bezpośrednio z panelu zarządzania, bez potrzeby edycji bazy danych:
Regularne aktualizacje
Pisząc o bezpieczeństwie nie można również zapomnieć o aktualizacjach samego WordPressa, jak i dodatków (wtyczki, skórki) które są zainstalowane. A jeśli dodatkowo korzystamy z „własnego serwera” należy pamiętać również o aktualizacjach samego systemu.
Cloudflare
Wprawdzie Cloudflare wielu osobą kojarzy się głównie z systemem CDN który pozwala „zaoszczędzić na transferze”, czy utrzymać stronę widoczną w sieci nawet przy awarii serwera, to Cloudflare pozwala również zadbać o bezpieczeństwo samej strony.
W większości przypadków wystarczy konto bezpłatne, i domyślne ustawienia…
To oczywiście nie wszystko…
Metod zabezpieczenia strony (nie tylko tej opartej o WordPress – bo niektóre są uniwersalne) pewnie można by wymienić jeszcze przynajmniej kilka. Sam pewnie znam/stosuje jeszcze kilka „trików”, ale nie wszystkie nadają się dla „początkujących użytkowników”, jak i do „publicznej publikacji” ;-)

Zapraszam do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
- Dzięki Scrcpy nie tylko wyświetlisz obraz z telefonu na komputerze, ale możesz nim sterować, robić zrzuty ekranu i nagrywać obraz - 1970-01-01
- Gdy MailerLite nie może wylistować zasobów z WooCommerce (np. produkty dostępne w sklepie) warto sprawdzić REST API - 1970-01-01
- Bitwarden to świetny menedżer haseł, który nawet w najlepszej cenie z najlepszych, czyli darmowej, jest więcej niż wystarczający - 1970-01-01