Zabezpieczenie WordPressa – gotowe strategie dla bezpiecznego WordPressa
05-12-2023
Zabezpieczenie WordPressa jest sprawą niezwykle istotną, jeśli chcesz korzystać z tego CMSa. Dzięki dużej popularności i mnogości nawet gotowych pomysłów, nie jest to zadanie specjalnie trudne, o czym przekonasz się w poniższym artykule.
Spis treści
Skąd biorą się wirusy na stronach z silnikiem WordPress
WordPress sam w sobie jest niezwykle bezpieczną platformą. Nad jego rozwojem i bezpieczeństwem pracuje bardzo wielu doświadczonych programistów z całego świata, a sam WordPress posiada ogromną społeczność wokół siebie, która także aktywnie angażuje się w rozwój tego najpopularniejszego CMSa. Mamy też ogromną ilość pluginów, dzięki którym możemy idealnie dopasować stronę do naszych potrzeb.
Z drugiej jednak strony popularność sprawia, że WP często jest na celowniku cyberprzestępców, a błędy bezpieczeństwa zazwyczaj nie znajdują się w samym WordPressie, a w jego pluginach, albo motywach. Dlatego tak ważne są aktualizacje. Nie uprzedzajmy jednak faktów. Poniżej zebrałem listę wskazówek, które pozwolą Ci uchronić się przed wirusami i innymi zagrożeniami.
Podstawowe zabezpieczenie WordPressa
Unikaj prostych haseł
Większość niedoświadczonych użytkowników, używa bardzo prostych haseł, jak password, qwerty, albo innych, które łatwo jest złamać za pomocą metody słownikowej, albo są na tyle krótkie, że można je złamać metodą siłową. Dlatego dobrą praktyką jest używanie długich i skomplikowanych haseł, które zawierają małe i duże litery, liczby, oraz znaki specjalne. Optymalnym rozwiązaniem będzie skorzystanie z menadżera haseł, jak LastPass, KeePass. czy chociażby RoboForm. Zdaję sobie jednak sprawę, że nie zawsze będzie to rozwiązanie wygodne, więc dam Ci radę jak możesz tworzyć w miarę bezpieczne hasła.
Weź najpierw 2 słowa. Akurat przede mną leży książka Lema Kongres Futuroligiczny, więc wezmę drugie słowo z tytułu. Weźmy jeszcze jakieś krótsze słowo. Niech to będzie, np. teatr. Dorzućmy jeszcze jakiś ciąg znaków, najlepiej 3-4. Wykluczam tutaj podawanie wszystkich takich samych cyfr, albo takich, które łatwo jest zgadnąć, np. rok urodzenia. W naszym przypadku będzie to 571. Teraz musimy jeszcze dodać znaki specjalne (dobrze, żeby były inne, niż ! @ #, ponieważ są one najczęściej wybierane), i musimy zdecydować, które litery będą wielkie. Takie więc przykładowe hasło mogłoby wyglądać następująco – 671futurologiczny^TeartR*. Oczywiście to hasło możecie jeszcze bardziej skomplikować, używając, np. 3-4 słów.
Zawsze aktualizuj WordPressa i wtyczki
To jest absolutna podstawa. wszystkie wtyczki powinny być aktualizowane, tak samo jak WP. W przypadku wykrycia luki bezpieczeństwa, to właśnie aktualizacje mogą Ciebie uchronić przed niespodzianką w postaci wirusa, albo ataku hakerskiego.
Zobaczmy sobie na taki prosty skan jednej z moich testowych domen, która celowo nie miała wszystkich niezbędnych aktualizacji.

Zastanów się, które pluginy są Ci tak na prawdę potrzebne
Pluginy są fajne, ale instalowanie ich bez opamiętania może zwiększyć ryzyko ataku na naszą stronę (w gratisie dostajemy niższą wydajność). Oczywiście dużą zaletą WP jest mnogość pluginów, ale jest z nim związane też oczywiste ryzyko – nie zawsze pluginy są napisane profesjonalnie, nie zawsze pochodzą od zaufanego developera, a nawet znanym wtyczkom zdarzały się błędy Dlatego osobiście raczej preferuję stosowanie mniejszej ilości pluginów, a przede wszystkim – instalowanie tych najbardziej zaufanych i dbanie o ich regularne aktualizacje.
Instalacja certyfikatu SSL
Każdy profesjonalny hosting WWW umożliwia instalację darmowego (np. Let’s Encrypt), albo płatnego certyfikatu SSL. Jest to jedna z pierwszych rzeczy jakie należy zrobić. Certyfikaty SSL nie tylko wpływają na poufność danych, ale także na wiarygodność Twojej strony i pozycję w Google.
Zaawansowane zabezpieczenie WordPressa
Blokowanie edytora edycji plików
W domyślnej konfiguracji WordPress daje możliwość edycji plików szablonu i pluginów z poziomu panelu administracyjnego. O ile jest to rozwiązanie bardzo wygodne dla developerów, o tyle ja zalecam wyłączenie tej opcji, ponieważ może okazać się ryzykowna.

Żeby wyłączyć możliwość edycji plików, należy dodać poniższy kod do pliku wp-config.php
define('DISALLOW_FILE_EDIT', true);
Wyłączanie wykonywania skryptów PHP w katalogu uploads
Czasami zdarza się, ze wirus przez lukę bezpieczeństwa w pluginie, zostanie wgrany do katalogu uploads (wp-config > uploads). W normalnych warunkach do czegoś takiego nie powinno dojść, więc według mnie zablokowanie możliwości uruchamiania skryptów PHP w katalogu uploads w znacznym stopniu podnosi poziom bezpieczeństwa. Możemy to zrobić bardzo łatwo. Wystarczy w tym katalogu stworzyć plik .htaccess z następującą regułą:
<Files *.php>
deny from all
</Files>
Zabezpieczenie pliku wp-config
Plik wp-config jest newralgniczny z punktu widzenia bezpieczeństwa WordPressa. Tam znajduje się spora część konfiguracji tego systemu zarządzania treścią, a dodatkowo znajdują się tam dane pozwalające na łączenie się z bazą danych. Zdarza się, że wirus dopisuje się do tego pliku. Dobrą praktyką jest zabezpieczenie go regułą w .htaccess:
<files wp-config.php>
order allow,deny
deny from all
</files>
Blokowanie XML-RPC
XML-RPC (XML – Extensible Markup Language, RPC – Remote Procedure Call) jest protokołem, który umożliwia, np. zdalne publikowanie postów z poziomu innych aplikacji. Domyślnie ten protokół jest włączony, ale jeśli nie zamierzasz z niego korzystać, możesz go zablokować w .htaccess.
<files xmlrpc.php>
order allow,deny
deny from all
</files>
Przydatne pluginy do zabezpieczania WordPressa
Antywirusy\Firewalle
Z tej kategorii pluginów, zazwyczaj korzystam z WordFence. Jest to narzędzi przydatne nawet w wersji bezpłatnej, które umożliwia wykrywanie znanych wirusów, może porównywać pliki szablonów, czy pluginów z tymi oryginalnymi, i w razie czego potrafi je podmienić. dodatkowo może blokować niebezpieczne adresy IP, i wiele więcej. Osobiście nie stosuję raczej tego pluginu na stronach klientów. Raczej wykorzystuję go na stronach zapleczowych, albo używam go do usuwania wirusów. Po pierwsze dlatego, że jak podchodzisz do kwestii związanych z bezpieczeństwem z głową, to raczej nie będzie Ci taki plugin potrzebny, a po drugie – są to dosyć złożone pluginy, które mogą dosyć mocno ingerować w sam silnik WordPressa.

Oczywiście mamy też alternatywy dla WordFence, np. AIO Security And Firewall, który jest kombajnem jeśli chodzi o zapewnienie bezpieczeństwa naszym stronom oparty o WP. W zupełności może zastąpić większość poniższych pluginów + dać jeszcze masę dodatkowych opcji.
Taka ciekawostka – przeprowadziłem test jednej z moich stron opartych o WP polegający na próbie przeskanowania go za pomocą narzędzia WPScan (narzędzie, które jest przydatne przy testach bezpieczeństwa stron opartych o WordPress, które może także wykazać pewne luki bezpieczeństwa). Po zainstalowaniu WordFence, z domyślnymi ustawieniami, skaner ten w ogóle nie widział, że strona jest oparta o WordPress.
Tak więc zabezpieczenie WordPressa przy użyciu tego typu plaginów może być niezłym pomysłem, ale trzeba się liczyć z tym, że mogą dosyć mocno ingerować w samego WordPressa.
Zmiana adresu logowania
Standardowo do panelu admina możesz zalogować się pod adresem /wp-login, ale zostaniesz pod ten adres przeniesiony także po wpisaniu /wp-admin. W porównaniu z niektórymi systemami, jak Prestashop, WordPress nie umożliwia prostej zmiany tego adresu, a jest to jak najbardziej do rozważenia. Czy uważam, że w kontekście zabezpieczania WordPressa ta zmiana jest niezbędna? Raczej rozważam ją jako opcję, do silnego hasła. Pamiętaj, że wiele narzędzi hakerskich przede wszystkim będzie wchodzić na wp-admin i dopiero później będzie próbować dostać się na Twoje konto. Zmiana adresu może być więc przydatna.
Niestety, WP nie oferuje natywnie takiej opcji. Zabezpieczenie WordPressa zaczniemy więc od zainstalowania wtyczki WPS Hide Login. Następnie przechodzimy do ustawień i wpisujemy pod jakim adresem chcemy się logować.

Ograniczenie liczby logowań
Pluginy takie, jak Limit Login Attempts Reloaded umożliwiają czasowe blokowanie konta przy określonej liczbie błędnych logowań. Może nas to uchronić przed włamaniem na konto, np. metodą słownikową. Tego typu plugin może być przydatny zarówno do monitorowania, czy ktoś nie dobija się do naszego panelu admina, ale także pomoże nam częściowo zabezpieczyć WordPressa przed złamaniem hasła. Sam plugin może być co najwyżej dodatkiem do bezpiecznego hasła, ale jest opcją do rozważenia, jeśli mamy w WP kilku userów i nie wierzymy, że wszyscy mają bezpieczne hasła.

Wtyczki do backupów
Wtyczek do backupów jest mnóstwo. Co prawda nie uchronią Ciebie przed atakiem, ale przed utratą danych jak najbardziej. Mogę tutaj wymienić chociażby takie wtyczki jak UndraftPlus, czy All-in-One WP Migration.
Podsumowanie
Warto poświęcić nieco czasu na odpowiednie zabezpieczenie WordPressa. Myślę, że powyższe pomysły będą bardzo przydatne. Gdybym miał wymienić najważniejsze, to w pierwszym rzędzie postawiłbym mocne hasło, i aktualizowanie WordPressa, pluginów i motywów. O instalacji SSL nawet nie wspominam, ponieważ to powinno się robić zawsze. Poza tym jestem zwolennikiem używania pluginów z głową. Instalowanie masy wtyczek bez zastanowienia, czy na prawdę są Ci potrzebne może doprowadzić do problemów nie tylko z wydajnością strony, ale także może spowodować, że Twoja strona będzie bardziej podatna.
Reszta jest już zależna od nas, naszych umiejętności i potrzeb. Osobiście staram się wykonywać większość czynności opisanych w części o zaawansowanych zabezpieczeniach, a pluginy traktuję raczej jako dodatek.