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, im coś jest popularniejsze, tym więcej ataków…
Spis treści w artykule
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ść.
Sama metoda jest identyczna jak w przypadku opisywanej wcześniej metody zabezpieczenia dostępu do PhPmyAdmin, z tym że zabezpieczamy nie katalog „phpmyadmin” a „wp-admin” i plik „wp-login.php”. 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 jego ikonę.
Apache2 i Nginx
Zawsze też możemy ręczne zmodyfikować odpowiednie pliki na serwerze.
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>
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” ;-)
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01