System zarządzania treścią (ang. CMS) WordPress jest bez wątpliwości najpopularniejszą aplikacją stosowaną do uruchamiania stron WWW. Z uwagi na jej popularność jest ona równie popularna wśród hakerów, którzy często przejmują kontrolę nad niezabezpieczonymi i/lub niezaktualizowanymi stronami WWW opartymi o ten system. Nie warto jednak rezygnować z tego systemu CMS. Odpowiednio dobrane wtyczki, regularne aktualizacje, nowoczesne rozwiązania i kilka drobnych zmian, opisanych poniżej, sprawią, że uruchomiona strona WWW będzie prosta w „utrzymaniu”.
Poniżej przedstawiamy dobre praktyki, z których zachęcamy korzystać w celu zwiększenia poziomu bezpieczeństwa na Twojej stronie internetowej opartej o system WordPress.
Dobre praktyki poprawiające bezpieczeństwo w WordPress
-
NAJWAŻNIEJSZE! Pamiętaj o aktualizacjach WordPressa oraz aktualizacjach wtyczek i motywów! To najważniejsza zasada, jeśli nie będziesz jej przestrzegać, to możesz darować sobie wszystkie następne wskazówki.Wraz z wersją WordPress 3.7 twórcy aplikacji wdrożyli mechanizm automatycznych aktualizacji.
-
Zmień domyślny prefixu wp_ dla tabel w bazie danych. Zmianę domyślnego prefixu na własny prefix możesz wykonać już podczas instalacji WordPressa. Po instalacji, dla już działających, zmiana prefixu jest także możliwa. W tym celu możesz skorzystać z narzędzia phpMyAdmin. Po zalogowaniu do bazy, zaznacz wszystkie tabele, wybierz opcję ‘Zmień przedrostek tabel’ i podaj nowy prefix, który chcesz ustawić dla tabel WordPressa.
Zmiana nazwy prefixu tabel wymaga także aktualizacji wpisów w dwóch tabelach WordPressa: xltw4_options oraz xltw4_usermeta. Zalecamy skorzystanie z poniższych poleceń, aby wyszukać wpisy ze starym prefixem tabel, który będziemy zmieniać:
dla tabeli prefix_options:SELECT * FROM `xltw4_options` WHERE `option_name` LIKE '%wp_%';
dla tabeli prefix_usermeta:
SELECT * FROM `xltw4_usermeta` WHERE `meta_key` LIKE '%wp_%';
W wyniku wykonania zapytania wyświetlona zostanie lista wierszy, w których stary prefix tabeli ‘wp_’ powinniśmy zastąpić nowym, w naszym wypadku ‘xltw4_’.
Pamiętaj! Po zmianie prefixu tabel w bazie zaktualizuj prefix w pliku wp-config.php. W przeciwnym wypadku strona przestanie się wyświetlać.Po ustawieniu unikalnego prefiksu dla bazy danych (najlepiej losowy ciąg znaków), nasza strona będzie mniej podatna na zautomatyzowane ataki typu SQL Injection. -
Zmiana ID oraz loginu głównego administratora. Przy ID warto podać wysoką liczbę składającą się z wielu cyfr. Kwestia ze zmianą domyślnego loginu „admin” nie jest może jakoś szczególnie istotna (szczególnie, jeśli zastosujemy się do wszystkich innych naszych zaleceń), ale dla świętego spokoju, lepiej go nie używać.
Zmianę ID oraz loginu administratora możesz wykonać za pośrednictwem phpMyAdmin (łącząc się z bazą danych, w której został zainstalowany WordPress). Następnie w tabeli xxx_users możesz zmienić dane użytkowników (ID oraz login).
WAŻNE! Po zmianie ID użytkownika, konieczne jest także wprowadzenie tych zmian (ustawienie NOWEGO ID) w tabeli xxx_usersmeta. -
Ogranicz dostęp do /wp-admin/ za pomocą .htaccess (dostęp do panelu administracyjnego WordPress tylko dla konkretnych adresów IP). Aby ograniczyć dostęp dla jednego adresu IP, w pliku .htaccess umieść poniższy kod:
AuthName "Example Access Control" AuthType Basic order deny,allow deny from all allow from 212.85.96.1
WAŻNE! Plik .htaccess z taką zawartością należy umieścić w katalogu /wp-admin/. W miejsce “212.85.96.1” wpisz Twój stały adres IP. Jeśli masz wątpliwości, czy dostawca Internetu przydzielił Ci stały adres IP, skontaktuj się z nim w celu ustalenia tych informacji. -
Zmień adres logowania do zaplecza WordPressa. Skrypty atakujące strony zbudowane na WordPressie zawsze próbują uzyskać dostęp do tej samej struktury adresów (np. /wp-content/, /wp-admin/ itd.). Dobrym rozwiązaniem jest zmiana adresu, pod którym logujesz się do panelu WordPressa, aby utrudnić próbę przejęcia konta. Polecamy wtyczkę WPS Hide Login – po instalacji ustalasz nową ścieżkę do logowania, do zaplecza serwisu i…to wszystko!
Pamiętaj – wtyczka zacznie działać natychmiast po zapisaniu zmian w ustawieniach, dlatego przy kolejnej próbie logowania do panelu WordPressa podaj nowy adres zaplecza.
-
Jeśli nie korzystasz z edytora plików motywów i wtyczek w WordPress – wyłącz go! Możesz wyłączyć wszystkim administratorom możliwość wprowadzania zmian w plikach motywów i wtyczek za pomocą panelu administracyjnego WP. W takiej sytuacji tylko osoby posiadające dostęp do serwera FTP będą mogły wykonać zmiany na plikach. Aby to zrobić wystarczy do pliku wp-config.php dodać następującą linię:
define('DISALLOW_FILE_EDIT', true);
W ten sposób zmniejszysz ryzyko doklejenia złośliwego kodu na stronie przez osoby, które w nieautoryzowany sposób uzyskały dostęp do panelu administracyjnego WordPress.
-
Ustaw dwustopniowe uwierzytelnianie (2FA). Podwójne uwierzytelnianie (2FA) polega na dodaniu drugiego etapu w procesie logowania do WordPressa. Oprócz czegoś co pamiętasz (hasło), system będzie wymagał również czegoś, co zawsze masz przy sobie (smartfon). Dzięki temu nawet, jeżeli ktoś pozna Twoje hasło, to nie zaloguje się do WordPressa bez dostępu do Twojego smartfonu.
Do uruchomienia dwustopniowego uwierzytelniania w WordPress wymagana jest instalacja odpowiedniej wtyczki (np. Two Factor Authentication) oraz instalacja aplikacji Google Authenticator na smartfonie z Androidem lub iOS. Po zalogowaniu do WordPressa i zainstalowaniu wtyczki Two Factor Authentication, będziesz mógł połączyć ją z aplikacją Google Authenticator, która na telefonie będzie generowała kody niezbędne przy logowaniu.
-
Dodatkowe wtyczki zabezpieczające. W sieci można znaleźć dodatkowe wtyczki do WordPressa służące do poprawy poziomu bezpieczeństwa WordPressa. Do tych najpopularniejszych należą bez wątpienia Shield, Sucuri, WordFence oraz iThemes Security.
Każda z powyższych wtyczek pozwoli w prosty sposób zabezpieczyć instalację WordPressa, oferując funkcjonalności takie jak: zmiana prefixu tabel w bazie danych, zmiana identyfikatora głównego użytkownika, blokowanie ataków typu BruteForce, blokowanie ataków typu XSS, ukrywanie wersji WordPressa, monitorowanie zmian w plikach na serwerze i notyfikacje do administratora w przypadku wykrycia zmian, automatyczne tworzenie kopii bezpieczeństwa serwisu (najczęściej w wersjach płatnych)
Którą wtyczkę zainstalować? Zdania co do skuteczności działania powyższych wtyczek wśród użytkowników WordPressa są podzielone. Znajdziemy tyle samo głosów ZA jak i PRZECIW instalacji tych pluginów. Decyzję co do wyboru pozostawiamy Wam. -
Wykonuj regularne kopie zapasowe (backup danych). Dane na wszystkich serwerach AZpl podlegają cyklicznej archiwizacji (codziennie w nocy). Archiwizacja danych zapasowych prowadzona jest w sposób punktowy o określonych porach w nocy. Z tego powodu warto mieć możliwość wykonania kopii zapasowej w dowolnym momencie (np. tuż po wykonaniu ważnych zmian na stronie WWW).
W tym celu możesz skorzystać z popularnej wtyczki: Duplicator, która jest zaawansowanym, a zarazem prostym w obsłudze narzędziem do tworzenia kopii zapasowych. Dzięki temu będziesz mógł przywrócić Twojego WordPressa w sytuacji kryzysowej, gdy strona przestanie działać.
-
Usuwanie zbędnych wtyczek oraz motywów. Usuwaj oprogramowanie, z którego nie korzystasz, ponieważ taka nieużywana i niezaktualizowana wtyczka lub motyw mogą posłużyć jako cel ataku w przyszłości.Zalecamy instalowanie wtyczek oraz szablonów tylko ze sprawdzonych źródeł!
Pewnym miejscem do pobierania wtyczek i motywów dla WordPressa jest oficjalne repozytorium. Trafiające tam rozszerzenia, przed udostępnieniem przechodzą proces weryfikacyjny, w ramach którego sprawdzane są m.in. pod kątem występowania w nich złośliwego kodu. Z repozytorium korzysta codziennie tysiące użytkowników, którzy bardzo szybko wyłapują i zgłaszają wszelkie problemy. -
Włącz obsługę HTTPS:// (Certyfikat SSL). Certyfikaty SSL są już wymogiem dla większości stron WWW. Zwiększenie poziomu bezpieczeństwa danych przechowywanych na stronie, danych przesyłanych przez klientów (formularze kontaktowe, koszyki w sklepach internetowych), wreszcie – większa wiarygodność serwisu zarówno dla odwiedzających, ale i dla wyszukiwarek (np. Google).
Nawet autorzy WordPressa oficjalnie komunikują konieczność instalacji certyfikatów SSL na stronach bazujących na WordPressie.
Jeśli na Twoim serwerze zainstalowany jest już certyfikat SSL, włącz jego obsługę w WordPressie. Operacja ta sprowadza się do podania poprawnego adresu (https:// zamiast http://) w ustawieniach aplikacji (Ustawienia -> Ogólne)
Dodatkowo, do pliku .htaccess w katalogu głównym WordPressa warto dodać poniższy zapis:
RewriteEngine on RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Podsumowanie – pamiętaj o sprawdzaniu swojej strony WWW! Większość złośliwych skryptów atakujących strony oparte na WordPressie, nie ma na celu zniszczenia zdobytego serwisu. Z reguły doklejają one do stron kody, powodujące wysyłanie spamu lub przekierowujące odwiedzających na inne adresy URL (może też ładować złośliwe strony do ukrytej ramki iframe). Użytkownicy strony WWW mogą być całkowicie nieświadomi tego, że złośliwe skrypty zostały doklejone do ich strony WWW.