open search bar close search bar
Wróć

Jak zadbać o bezpieczeństwo WordPressa w kilku krokach

6 min czytania

Osom Studio - Agencja Interaktywna
share on twitter share on facebook

Według danych z w3techs.com, co trzecia strona internetowa jest oparta o WordPress. Nie dziwi więc fakt, że hakerzy i crackerzy skanują strony w poszukiwaniu luk w samym core oraz w zainstalowanych wtyczkach. Podatny kod znaleziony na jednej stronie występuje zwykle i na innych witrynach opartych o ten CMS, a to umożliwia całe pasmo ataków. W poniższych punktach pokażemy Wam jak utrudnić bądź uniemożliwić nieautoryzowany dostęp do danych.

1. Aktualizuj core WordPressa, gdy tylko jest to możliwe

WordPress jest otwartym oprogramowaniem, co znaczy, że każdy może dodać swój kod do repozytorium i istnieje szansa jego publikacji w kolejnej wersji CMS. Daje to możliwość na szybkie wychwytywanie błędów. Im więcej ludzi ma dostęp do kodu oraz im więcej z nich znajdzie błąd, tym szybciej zostanie on naprawiony.

WordPress pisany jest przez ludzi, co oznacza, iż z pewnością musi być “łatany” (każdy z nas się kiedyś myli :). Częste aktualizacje samego CMS pozwalają uniknąć problemów związanych z furtkami, które pozostawione były w wersjach poprzednich. Dzięki tym update’om niepowołane osoby mają mniej czasu na wykrycie nowych błędów i nie mogą skorzystać z wcześniej wykrytych luk, które krążą po sieci.

2. Wykonuj kopie zapasowe

Jeśli w jakiś sposób hacker uzyska dostęp do bazy, może próbować wkleić swój kod (chociażby reklamowy) na naszą stronę lub usunąć bazę danych i szantażować przywróceniem po zapłaceniu okupu.

Zapewne nikt z nas nie chciałby stracić wszystkich postów, zdjęć czy komentarzy. Na szczęście nie musimy wcale podporządkowywać się szantażyście. Wystarczy przywrócić kopię zapasową, którą najlepiej wykonywać po każdej większej ingerencji w stronę. “Dogrzebanie się” do miejsca, w którym kod reklamowy jest wstrzyknięty, również nie należy do najmilszych czynności. Jest to proces czasochłonny, a jak wiemy – czas to pieniądz, dlatego lepiej dmuchać na zimne i w porę temu zapobiegać.

3. Instaluj jedynie sprawdzone wtyczki

Jak już wspomniałem, repozytorium WordPressa jest otwarte. Oznacza to, że każdy użytkownik może wystąpić o dodanie jego autorskiej wtyczki do ogólnego repozytorium WordPressa. Aby ograniczyć prawdopodobieństwo przejęcia strony lub wystąpienia nieoczekiwanych błędów, zawsze należy używać sprawdzonych wtyczek.

Co to oznacza? Weźmy za przykład wtyczkę Advanced Custom Fields – posiada ona ponad milion aktywnych instalacji oraz ostatni raz aktualizowana była 19.05.2020. Prawdopodobieństwo wystąpienia we wtyczce kodu, który spowoduje błędy krytyczne, jest zatem znikome. Jeśli wtyczka posiada stałe wsparcie oraz została przetestowana na Twojej wersji WordPressa, możesz ją uznać za sprawdzoną.

4. Logowanie danymi admin/admin123 to zły pomysł

Przy automatycznej instalacji WordPressa przychodzi krok, w którym musimy wskazać login oraz hasło administratora. Próbujemy wtedy wybrać dostępy, które łatwo zapamiętamy lub skojarzymy. Niestety, nie tędy droga.

Zarówno login, jak i hasło stanowić powinny solidne zabezpieczenie naszej strony. Nazwa użytkownika powinna być łatwa do zapamiętania, niemniej nie jest wskazane używanie jej w postaci “admin” lub “administrator”. Z kolei ustanawiając hasło, najlepiej używać generatorów takich jak np. Enpass. Narzędzie to pozwala na wygenerowanie i zachowanie skomplikowanego ciągu liter i znaków. Takie rozwiązanie skutecznie utrudni bądź uniemożliwi hakerom użycie metody brute force do złamania naszego hasła.

5. Limit liczby logowań

W repozytorium WordPressa istnieje wiele wtyczek, które ograniczają liczbę logowań, jeśli nastąpiło zbyt dużo prób w zadanym czasie. Przykładem takiej wtyczki może być Limit Login Attempts Reloaded. Jeśli osoba niepowołana będzie próbowała odgadnąć hasło, dostęp do konta zostanie na pewien czas zablokowany. Opcjonalnie można włączyć logowanie takich prób lub nawet wysyłanie nieudanych przypadków na adres e-mail.

6. Uwierzytelnianie dwuskładnikowe

Jeśli chcemy uzyskać większe bezpieczeństwo małym nakładem pracy, warto wdrożyć uwierzytelnianie dwuskładnikowe. Kradzież hasła może odbywać się choćby przy pomocy keyloggera w oprogramowaniu lub keyloggera sprzętowego. – oprogramowania bądź sprzętowego. Przy aktywnym uwierzytelnianiu dwuskładnikowym, wykradzione hasło nie przyda się jednak hakerowi. Wymagane będzie bowiem potwierdzenie logowania SMSem lub w aplikacji. Usługę taką oferuje między innymi Duo Two-Factor Authentication. Aby zabezpieczyć stronę, należy zainstalować plugin, a następnie postępować zgodnie ze wskazówkami dostępnymi podczas aktywacji. Konieczne będzie również zainstalowanie aplikacji ze Sklepu Play lub AppStore.

7. Używanie linku wp-admin jako dostęp do panelu to proszenie się o kłopoty

Większość osób, które chcą niepowołanie dostać się na Twoją stronę, będzie próbować odgadnąć login i hasło w formularzu logowania. Dlaczego jeszcze bardziej nie utrudnić im kreciej roboty poprzez konieczność odgadnięcia prowadzącego do niego linku? Najlepszym sposobem jest zmiana adresu logowania. Link ten należy wybrać rozważnie (ustawienie /login, /admin lub /logowanie nie utrudni odgadnięcia).

Przykładowym pluginem ułatwiającym kwestię zmiany adresu może być Change wp-admin login.

8. Edycja plików motywu z poziomu dashboardu jest prostsza – także dla innych

Kiedy wprowadzamy na stronie quick-fixy, najwygodniej jest nam wejść w panel administracyjny, najechać na zakładkę “Wygląd” oraz kliknąć “Edytor motywu”. Większość użytkowników nie zastanawia się, czy opcja ta jest w pełni bezpieczna. Ale co w przypadku, gdy dostęp do strony otrzyma osoba niepowołana? Niestety, będzie miała ona dostęp do edycji kodu motywu. Najlepszą opcją w tym wypadku jest wyłączenie możliwości edytowania plików z poziomu panelu. Aby to uzyskać, musimy dopisać następującą linię do pliku wp-config.php .

define('DISALLOW_FILE_EDIT', TRUE);

9. Prefiks tabel bazy danych – używanie wp_ może pozwolić na łatwiejsze SQL Injection

Gdy używamy dużej ilości wtyczek bądź customowych motywów, posiadających wiele miejsc, w których użytkownik może wpisywać dane (typu komentarze bądź inne formularze), jesteśmy zagrożeni atakiem SQL Injection.

Ta metoda polega na wpisaniu zmodyfikowanego zapytania SQL w taki sposób, aby interpreter wykonał zadane przez modyfikującego akcje. Mając za prefiks tabel ciąg wp_ ułatwiamy osobie atakującej cały proces. O wiele bardziej oczywiste jest wrzucać do wszystkich formularzy “DROP TABLE wp_options;” niż “DROP TABLE tjmnt_options;”.

10. Aktualizuj wtyczki przy każdej okazji

Ten punkt jest bardzo zbliżony do punktu pierwszego. Podczas procesu developmentu, wiele wtyczek jest podatnych na ataki bądź posiada błędy, które ujawniają się w pewnych okolicznościach. Aktualizacje wtyczek z wersji na wersję łatają pewne podatności. Należy również pamiętać, że NIE WOLNO edytować kodów wtyczek. Wszystkie modyfikacje funkcjonalności lub ich poszerzanie powinno znajdować się w osobnych plikach (osobna wtyczka) lub w plikach naszego motywu – każdorazowa aktualizacja wtyczki nadpisze bowiem wprowadzone zmiany.

11. Sprawdź, czy nie ujawniasz wersji WP dla wszystkich

Najprostszą metodą, aby to sprawdzić, jest wyświetlenie źródła strony oraz wyszukanie obecnie posiadanej wersji WordPressa. Często jest ona dopisywana przy wczytywaniu styli/skryptów lub też uwzględniona w nagłówku. Ujawnianie wersji WP pozwala w łatwy sposób sprawdzić, jakie łatki jeszcze nie zostały zaimplementowane na stronie.

Aby ukryć wersję z headera, zalecam dodanie poniższego kodu do pliku functions.php naszego motywu:

function remove_wp_ver() {
return ‘’;
}
add_filter(‘the_generator’,’remove_wp_ver’);

12. Zablokuj RestAPI – udostępnij tylko używane endpointy

WordPress od wersji 4.7.0 oferuje możliwość korzystania ze swojego REST API. Oznacza to, że używając odpowiednich endpointów, możemy otrzymywać lub dodawać/zmieniać dane na naszej stronie. Umożliwia to połączenie naszego WordPressa z różnymi zewnętrznymi API.

Wielu użytkowników nie zdaje sobie sprawy, że REST API jest włączone na ich stronie od czasu założenia serwisu. Przykładowym endpointem (do którego raczej nie chcielibyśmy, by miały dostęp osoby trzecie) jest “/wp-json/wp/v2/users/”. Pozwala on uzyskać listę wszystkich użytkowników wraz z ich avatarami oraz slugami. Najodpowiedniejszą formą ochrony w tym wypadku będzie pełne wyłączenie REST API, jeśli nie korzystamy z połączenia z serwisami zewnętrznymi. W przypadku konieczności dzielenia się danymi “na zewnątrz”, polecam napisanie swoich endpointów oraz poprawne ich zabezpieczenie.

13. Certyfikat SSL

Wiele osób odwiedzając strony internetowe, zastanawia się, dlaczego niektóre mają “kłódeczkę” obok adresu, a niektóre napis “Niezabezpieczona”. Czy faktycznie ma to aż taki wpływ na bezpieczeństwo? Odpowiedź brzmi: tak.

“Kłódeczka” oznacza zainstalowany na stronie certyfikat SSL (Secure Socket Layer). Najprościej mówiąc, komunikuje on, że połączenie między stroną a użytkownikiem jest zabezpieczone. Certyfikat ten odpowiada za szyfrowanie przekazywanych informacji, co oznacza, że przechwycenie danych “w locie” przez osoby postronne, jest niemożliwe. Gdy odwiedzaną stroną jest sklep, z pewnością nie chcielibyśmy, aby dane naszej karty kredytowej “wędrowały” po całym internecie. Z tego powodu zawsze powinniśmy zwracać uwagę na to, czy dana strona zabezpieczona jest certyfikatem, a już na pewno w zupełności unikać korzystania z niezabezpieczonych stron używając ogólnodostępnych sieci bezprzewodowych.

 

Podstawowe zabezpieczenie WordPressa obejmuje wiele kroków. Podejście do każdej strony wymaga indywidualnej oceny sytuacji oraz dróg, jakie może obrać niepowołana osoba. Musimy starać się, by była ona nieoczywista. Wykorzystując wiedzę z powyższych przykładów, na pewno unikniesz wielu niemiłych niespodzianek na swoim blogu czy w sklepie 🙂

A jeśli potrzebujesz wsparcia w tym zakresie, daj nam znać na office@osomstudio.com Pomożemy Ci skutecznie zabezpieczyć witrynę.

WordPress nie ma przed Tobą tajemnic?

Zróbmy to!

Popracujmy nad wspólnym projektem.

Jesteś ciekaw, co możemy zrobić dla Twojego biznesu? Chcesz skorzystać z zalet marketingu online, potrzebujesz graficznej obsługi firmy, planujesz uruchomić sklep internetowy albo kampanię reklamową adwords?

Skontaktuj się z nami i zobacz, jakie działania podejmiemy, by nasz wspólny projekt zrealizował Twój cel biznesowy.

Skontaktuj się