Zabezpieczenia WordPress, pomimo tego co sądzi większość użytkowników, nie są takie trudne i zaraz się o tym przekonasz. Zadbanie o podstawowy poziom zabezpieczenia jest proste, jednak przy każdych zmianach należy zachować czujność i zdrowy rozsądek. Jako dostawca szybkiego hostingu dla WordPress czujemy się zobowiązani do stałego podpowiadania Ci, co możesz zrobić dla bezpieczeństwa Twojej strony. Konfigurację zabezpieczeń WordPressWordPress to najczęściej wybierany CMS na świecie. W oparciu o niego powstała niemal połowa istniejących stron internetowych. WordPress jest doceniany przez użytkowników ze względu na prostotę, intuicyjność i łatwość zarządzania. Ze względu na charakter open source, WordPress może być rozwijany i udoskonalany na potrzeby konkretnych, indywidualnych projektów. Jak zacząć korzystać z WordPressa? Aby rozpocząć przygodę z WordPressem, najpierw potrzebujesz hostingu dla WordPress. Hosting zapewnia miejsce na serwerze, gdzie będą przechowywane wszystkie pliki...Czym jest WordPress? ułatwi Ci to niniejszy artykuł.

Zabezpieczenia WordPress. Podstawy i dobre praktyki.

Długo się zastanawiałem, czy w ogóle ten temat poruszyć… jednakże codzienne obserwacje zachęcają do uwzględnienia podstaw. Choć specjaliści ds. bezpieczeństwa kierują uwagę użytkowników na ten problem, wielu wciąż upiera się przy stosowaniu łatwej kombinacji loginów i haseł (np. login: admin, hasło: Kolega12).

Niemal każdy z nas, chociaż raz w życiu posiadał proste hasło: jedno lub dwa słowa, bez znaków specjalnych. To normalne, że staramy się mieć hasłoW informatyce, hasło jest to sekretne słowo lub zestaw znaków, które upoważnia użytkownika do uzyskania dostępu do określonych zasobów, takich jak konto użytkownika, system komputerowy, sieć, czy też aplikacja. Hasła są używane w celu zapewnienia poufności i bezpieczeństwa, uniemożliwiając nieautoryzowany dostęp do informacji lub zasobów. Dobre praktyki dotyczące bezpiecznych haseł obejmują: Długość: Im dłuższe hasło, tym trudniejsze do złamania. Zaleca się, aby hasło miało co najmniej 12 znaków. Złożoność: Hasło...Czym jest Hasło?, które łatwo nam zapamiętać, ale… Skoro jest ono łatwe dla nas, z pewnością będzie proste do odgadnięcia także dla potencjalnego hakera. Ktoś inny jest w stanie zapamiętać nasze zabezpieczenia w bardzo prozaiczny sposób, np. podglądając nas zza ramienia, albo przy wykorzystaniu Brute-Force. Dana osoba może próbować odgadnąć hasło i w rezultacie trafi. Zabezpieczenia WordPress, które wprowadzisz, muszą przewidywać taką sytuację.

Hasła i szyfrowanie połączeń jako elementy zabezpieczenia WordPress

Tylko oryginalne nazwy użytkownika i mocne hasła są w stanie podnieść poziom bezpieczeństwa. Nazwy typu: admin, administrator, webmaster, postmaster, <tutaj_nazwa_strony>, czy user powinien zostać wykluczone. Zadbajmy o to, bo inaczej ktoś szybko wykorzysta nasze niedopatrzenie.

Dodatkowo przypominam o szyfrowaniu połączeń. W czasach, gdy koszt certyfikatu to kilkanaście złotych, nie warto oszczędzać na sprawdzonych rozwiązaniach. Certyfikat SSL jest uwiarygodnieniem dla serwisu i zabezpieczeniem strony przed atakiem Man in the middleAtak man in the middle wykorzystuje technikę przejmowania danych przesyłanych przez Internet np. pomiędzy klientem a sklepem internetowym. Cyberprzestępca zajmuje miejsce między dwoma komunikującymi się stronami i przechwytuje wysyłane komunikaty. Jak zabezpieczyć się przed atakiem Man in the middle? Internauta Jako Internauta też możesz minimalizować ataki typu man in the middle. Zamierzasz zostawić swoje dane na stronie? Upewnij się, że połączenie jest szyfrowane, w przeciwnym razie Twoje dane mogą zostać...Czym jest Man in the middle?.

Certyfikat SSLSSL (Secure Sockets Layer) to protokół kryptograficzny, który zapewnia bezpieczne połączenie między użytkownikiem a serwerem, chroniąc dane przesyłane przez internet. SSL jest najczęściej używany do zabezpieczania połączeń na stronach internetowych, zwłaszcza tych, które wymagają podania danych osobowych, takich jak loginy, hasła czy informacje o płatnościach. SSL jest niezbędny na każdej stronie internetowej, na której użytkownicy przesyłają dane wrażliwe, na przykład w sklepie internetowym czy podczas rejestracji na stronie. Aby wdrożyć...Czym jest SSL? to jedna z fundamentalnych spraw, kiedy myślisz o zabezpieczaniu formularza w WordPress. Nie ochroni wprawdzie przed spamem przez formularz, ale dzięki niemu dane podane w formularzu pozostają poufne „w trasie” między przeglądarką użytkownika a serwerem. Zabezpieczenia WordPress nie mogą być uznane za kompletne bez certyfikatu SSL!

Bogate i jednocześnie słabe wsparcie

Zacznijmy od początku… Jaki jest najczęstszy powód infekcji, które się pojawiają na WordPress’ie i na każdym popularnym systemie CMSCMS (Content Management System) to system zarządzania treścią, czyli oprogramowanie, które umożliwia tworzenie, edycję, publikację i zarządzanie treściami na stronach internetowych bez konieczności posiadania zaawansowanej wiedzy technicznej. CMS jest szeroko stosowany przez osoby i organizacje zajmujące się tworzeniem i utrzymaniem stron internetowych, ponieważ ułatwia zarządzanie treściami oraz umożliwia współpracę wielu użytkownikom. CMS jest kluczowym narzędziem dla osób i firm, które chcą prowadzić stronę internetową, bloga, czy sklep internetowy w sposób prosty...Czym jest CMS? (takim jak np.: Joomla)? Brak aktualizacji oraz korzystanie z dodatków (wtyczek), które zostały porzucone przez twórców.

W celu zobrazowania sytuacji, przyjrzyjmy się wtyczce: “Steam Widget”. Jak widać – wtyczka jest aktualna po instalacji. Zabezpieczenie, które WordPress’a rozumiane jako aktualizowanie wtyczek – jest spełnione, niby wszystko ok, trzeba jednak zwrócić uwagę na datę ostatniej aktualizacji:

Wtyczka została ostatni raz zaktualizowana ponad 3 lata temu. Dodatkowo na stronie wtyczki pojawia się wielki banner:

Jak widać – sam WordPress informuje, że wtyczka może być porzucona i nie wspierana. Twórca wtyczki nawet pewnie nie ukrywa faktu, że ta została porzucona. Mimo to nie została ona usunięta z bazy wtyczek, dodatkowo jest instalowana przez właścicieli wielu aplikacji – a to jedna z wielu dróg możliwego zainfekowania. Jak widać na powyższym przykładzie, by zabezpieczyć WordPress, nie wystarczy jedynie bieżąca aktualizacja. Istotny jest również rozważny dobór wtyczek.

Zabezpieczenia WordPress muszą zatem obejmować pilnowanie aktualności wtyczek. Ok, pilnujemy wtyczek – o czym jeszcze musimy pamiętać?

Automatyczne aktualizacje i ich rola w zabezpieczeniach WordPress

Zalecam zautomatyzować wszystko. Na początek może uruchomimy aktualizacje samego WordPress’a? Jest to bardzo proste, gdyż wystarczy w pliku wp-config.php dodać wpis:

 define( 'WP_AUTO_UPDATE_CORE’, true ); 

Można go dodać praktycznie w każdym miejscu, więc nie powinno to sprawiać problemu. Od teraz aktualizacje WordPress będą prowadzone automatycznie. Jedna czynność została już zautomatyzowana. Teraz zajmijmy się aktualizacjami wtyczek, stylów oraz tłumaczeń.

W folderze wp-content/mu-plugins/ tworzymy plik (może się nazywać np.: aktualizacja.php) i wrzucamy tam następujący wpis:

<?php
add_filter(’auto_update_plugin’, '__return_true’ );
add_filter(’auto_update_theme’, '__return_true’ );
add_filter(’auto_update_translation’, '__return_true’ );

MU Plugins pozwala dodać funkcjonalności, które zawsze muszą zostać wywołane i są niezależne od stylu lub wtyczki. Od momentu dodania tego pliku, wszystkie dodatki będą aktualizowane automatycznie i nie trzeba pilnować, by te aktualizacje były wykonywane. Ważnym też jest, by usuwać wtyczki, których nie wykorzystujemy. Pomimo ich “wyłączenia” w panelu strony, w formie kodu są dalej obecne i dalej mogą stanowić niebezpieczeństwo dla naszej strony WWW.

Dodatkowo ukryjmy wersję WordPress’a. Nawet jeśli z jakiegoś powodu aktualizacja nie zostanie wykonana, atakujący nie będzie do końca tego świadom.

Zabezpieczenia WordPress na wypadek awarii na serwerze

Mamy już automatyczne aktualizacje. Czy to oznacza, że nie musimy się już niczym martwić? Nic bardziej mylnego. Jest jeszcze wiele innych miejsc, gdzie może dojść do infekcji lub wycieku danych, np. w trakcie awarii. W sytuacji, gdy pojawi się awaria interpretera PHPPHP - (Hypertext Preprocessor) to popularny język skryptowy, który jest szeroko stosowany w tworzeniu dynamicznych stron internetowych oraz aplikacji webowych. PHP jest językiem open-source, co oznacza, że jest dostępny bezpłatnie i może być modyfikowany przez użytkowników. Jednym z głównych zastosowań PHP jest generowanie dynamicznych treści na stronach internetowych. Dzięki PHP możliwe jest tworzenie stron, które reagują na dane wprowadzone przez użytkowników, co jest kluczowe w przypadku aplikacji takich jak sklep internetowy czy...Czym jest PHP?, pliki mogą nie być wykonywane, a zwyczajnie wyświetlone. W takiej sytuacji każdy będzie miał dostęp do kodu strony z dowolnej przeglądarki. Zabezpieczenia WordPress powinny to zatem uwzględniać.

Tak się szczęśliwie składa, że hosting dla WordPress z naszej oferty bardzo dobrze odpowiada na tego rodzaju zagrożenia. Kopia zapasowa bazy, a więc tych danych, które zmieniają się najczęściej, jest wykonywana co 6 godzin, a kopia plików i poczty raz na dobę. Zdumiewające są także czasy przechowywania danych w kopii zapasowej – są one dostępne aż do 28 dni wstecz!

Backup WordPress

Istnieją co najmniej 3 powody, dla których warto wykonywać regularnie kopie bezpieczeństwa Twojego WordPress’a.

  • Ryzyko uszkodzenia WordPress w wyniku ataku na stronę.
  • Możliwość, że Ty popełnisz błąd i np. skasujesz albo nadpiszesz ważny plik.
  • Niewielkie prawdopodibieństwo, że w firmie hostingowej dojdzie do awarii.

Dlatego właśnie gorąco zachęcam Cię do zapoznania się ze specjalistycznym artykułem Artura Pajkerta: Backup WordPress – jak robić to dobrze.

Dane logowania do bazy ochronione

To groźna sytuacja, choć jeszcze nie tragiczna. WordPress jak i wtyczki/style w repozytoriumRepozytorium to miejsce przechowywania danych, które umożliwia organizację, udostępnianie oraz zarządzanie różnego rodzaju plikami i informacjami. W kontekście IT najczęściej odnosi się do systemów wersjonowania kodu, takich jak Git, gdzie deweloperzy mogą przechowywać i współdzielić swoje projekty programistyczne. Repozytoria mogą być lokalne (na komputerze) lub zdalne, hostowane na specjalistycznych platformach, takich jak GitHub czy Bitbucket. Do czego służy repozytorium? Repozytorium pełni kluczową rolę w procesie tworzenia oprogramowania. Umożliwia: Śledzenie zmian...Czym jest Repozytorium? są dostępne dla każdego, więc w praktyce kod strony jest powszechnie znany. Jednak cenniejszym od samego kodu strony jest jej baza. Dane logowania do bazy w takiej sytuacji również mogą być dostępne dla każdego. Wtedy może dojść do wycieku, a wtedy… hasła, loginy, e-mail’e, dane klientów, koszyk, listy artykułów – wszystko będzie dostępne dla każdego.

Konieczne jest zabezpieczenie dostęp do pliku, gdzie przechowywane są wrażliwe dane dostępowe. Takim plikiem jest wp-config.php, który zawiera konfigurację WordPress’a. Dobrym rozwiązaniem będzie dodanie do pliku .htaccessPlik .htaccess znany również jako 'Hypertext Access', jest konfiguracyjnym plikiem dla serwerów opartych na Apache. Pozwala on na zarządzanie ustawieniami serwera na poziomie katalogu, bez potrzeby bezpośredniego dostępu do głównego pliku konfiguracyjnego Apache. Nazwa pliku zaczyna się od kropki, co w systemach Unix/Linux oznacza plik ukryty. Plik .htaccess zawiera dyrektywy konfiguracyjne, które regulują różne aspekty działania serwera, takie jak przekierowania, autoryzacja dostępu, kontrola błędów, cache'owanie i reguły przepisywania adresów URL...Czym jest Htaccess? wpisu:

<Files .htaccess wp-config.php>
order allow,deny
deny from all
</Files>

Powyższy wpis pozwoli na uniemożliwienie dostępu do pliku, nawet w razie awarii interpretera.

Pomysł ochronę na wp-config.php w WordPress

Wiele automatycznych ataków wymierzonych w WordPress próbuje „dobrać się” do zawartości pliku wp-config, ponieważ z niego bezpośrednio można wyciągnąć dane dostępowe do bazy.

Nic nie stoi jednak na przeszkodzie umieszczenia tych danych w osobnym pliku, który byłby jedynie inkludowany w wp-config. Oczywiście wprawny programista natychmiast się zorientuje, gdzie szukać danych, ale automatyczne ataki w większości nie dadzą atakującym potrzebnych informacji.

Pamiętaj, aby ten plik także chronić przed bezpośrednim odczytem poprzez odpowiedni wpis do .htaccess.

Wyłączanie edytora plików

Pilnowanie wtyczek, automatyczne aktualizacje i powoli nasza strona zaczyna być zabezpieczona, jednak nie warto spoczywać na laurach i zadbać o dodatkowe elementy. Załóżmy hipotetyczną sytuację, że nasze hasło w jakiś sposób wyciekło i aktualnie ktoś ma dostęp do strony. W zakładce Wygląd > Edytor posiadamy interesującą funkcjonalność, która polega na możliwości edytowania stylu strony (łącznie z kodem) z poziomu samego WordPress’a. To bardzo przydatne narzędzie, ale tylko podczas tworzenia strony. Na tzw. produkcji – tej funkcjonalności lepiej nie posiadać. Bezpieczniej zatem usunąć taką funkcję, tak aby ograniczyć możliwość manipulacji. W tym celu ponownie wracamy do pliku wp-config.php i dodajemy kolejny zapis (np.: pod naszym wpisem z aktualizacjami). Jest to prosty wpis: define(’DISALLOW_FILE_EDIT’, true);

Od tego momentu edytor jest wyłączony, bez ingerencji w główny trzon aplikacji. Nawet jeśli w przyszłości trzeba będzie coś zmienić, można za pomocą FTPFTP (File Transfer Protocol) to protokół komunikacyjny używany do transferu plików między komputerami w sieci internetowej. Jest to jedno z najstarszych i najbardziej powszechnie stosowanych narzędzi do udostępniania i pobierania plików na serwery internetowe. FTP jest idealnym rozwiązaniem, jeśli potrzebujesz prostego i efektywnego sposobu przesyłania plików między komputerami. Jest szczególnie przydatny w kontekście zarządzania plikami na serwerach hostingowych, takich jak hosting www czy hosting dla WordPress. Możesz również używać FTP do zarządzania plikami...Czym jest FTP? edytować pliki (tutaj zalecam nie korzystać z samego FTP, ale z sFTPSFTP, czyli Secure File Transfer Protocol, jest protokołem do bezpiecznego przesyłania plików pomiędzy klientem a serwerem. Jest to rozszerzenie protokołu SSH (Secure Shell), które zapewnia szyfrowane i bezpieczne połączenie do przesyłania danych.  Dlaczego warto używać SFTP? Wybór SFTP jest kluczowy dla firm i administratorów, którzy cenią sobie bezpieczeństwo. Przesyłając pliki za pomocą SFTP dane są chronione, co jest szczególnie istotne w kontekście przesyłania wrażliwych informacji, np. danych klientów w sklepach...Czym jest SFTP? jeśli dostępny lub ewentualnie FTPS – szyfrowaną wersję FTP) bądź przygotować automatyczną aktualizacje stylu.

Zabezpieczanie WordPress – co z plikami?

Warto również pomyśleć o zabezpieczeniu innych plików, które nie są użyteczne dla standardowego użytkownika, a pozostają świetnym źródłem informacji dla ewentualnego włamywacza. Katalogi wp-includes i wp-admin/includes posiadają w sobie pliki, które warto zablokować, a robimy to za pomocą np.: poniższego wpisu w .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ – [F,L]
RewriteRule !^wp-includes/ – [S=3]
RewriteRule ^wp-includes/[^/]+.php$ – [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php – [F,L]
RewriteRule ^wp-includes/theme-compat/ – [F,L]
</IfModule>

Ochrona przed przesłanymi plikami jako element zabezpieczania WordPress

Kolejnym katalogiem gromadzącym pliki, które będzie można wykorzystać do zainfekowania naszej strony jest katalog, gdzie umieszczane są wszystkie przesłane pliki. Bardzo częstą praktyką jest posiadanie na stronie formularza. Niezależnie, czy jest to formularz zamówień, czy kontaktowy – możemy w nim umieścić możliwość wysyłki pliku. Może to być obrazek, może nawet jakiś dokument. Tylko, co się stanie, gdy ktoś wykorzysta formularz, w celu umieszczenia skryptu na serwerze?

Niestety, źle zabezpieczone formularze dopuszczają do takich sytuacji. Nawet te potencjalnie chronione – potrafią posiadać jakąś podatność. Możemy kombinować z formularzem, dodawać kolejne zabezpieczenia, weryfikację zawartości, typu MIME, skanować jakimś antywirusem, wykonywać naprawdę sporo czynności. Jednak to wymaga czasu, środków i świadomości problemu. Nawet największe firmy z branży IT mają na swoim koncie wpadki, zatem jak się skutecznie chronić?

Blokada wykonywania plików PHP

WordPress jest aplikacją stworzoną w języku PHP i tak samo – po stronie serwera –  wykonywany jest kod, który ostatecznie wyświetla nam stronę. Skoro PHP jest uruchamiane, to możemy wysłać plik PHP, który również można uruchomić na serwerze. Może warto zablokować wykonywanie plików PHP po stronie serwera? Przynajmniej dla plików przesłanych przez formularz?

<Files *.php>
deny from all
</Files>

Powyższy kod zablokuje wykonywanie plików o rozszerzeniu *.php na serwerze i taki plik .htaccess należy dodać do katalogu wp-content/uploads/. Teraz nawet w przypadku przesłania pliku PHP na serwer, atakujący nie wykona kodu. Co prawda, samo przesłanie pliku nie jest zbytnio wyrafinowanym atakiem. Łatwo go wykryć i stosunkowo łatwo się przed nim zabezpieczyć. Większym wyzwaniem jest zabezpieczenie przed tzw. Code injection. Tutaj trzeba się bardziej pilnować, ale jest rada, która częściowo pozwala na zabezpieczenie strony. Polecam ponownie udać się do naszego głównego pliku .htaccess w głównym katalogu strony i do niego dodać poniższy wpis:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

Zabezpieczenie WordPress – blokada dostępu do panelu administracyjnego

Następne zabezpieczenie, to ochrona naszego panelu administracyjnego. Można sporo namieszać przez panel. Skoro i tak dostępu nie dajemy dla każdego, bo to nasz panel administracyjny – to po co go udostępniać na świat? Jest na to wiele sposobów, jednak dobrym pomysłem będzie zablokowanie dostępu tylko dla adresów IP z których my się łączymy. Jeśli mamy zmienne IP, zawsze możemy też dodać całą pulę adresową naszego dostawcy internetu. Przykładowy zapis:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin(/)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin/$
RewriteCond %{REMOTE_ADDR} !^200.200.200.200$
RewriteRule ^(.*)$ – [R=403,L]
</IfModule>

Oczywiście, trzeba ten zapis dostosować pod siebie, więc zalecam tą opcję jedynie dla doświadczonych webmasterów.

Wtyczki zapewniające bezpieczeństwo WordPress

Na sam koniec zostawiam temat wtyczek “zapewniających” bezpieczeństwo. Popularne wtyczki, takie jak WordFence nie mogą zagwarantować 100% bezpieczeństwa. Przecież same są przykładem miejsca, gdzie można się włamać. W końcu im więcej dodatków, tym więcej możliwych dróg nieautoryzowanego dostania się do strony. Oczywiście – ich celem jest zwiększenie bezpieczeństwa – i często spełniają swoją rolę. Sam mogę polecić wtyczki takie jak Cerber, czy Sucuri. Jednak nie warto na nich polegać w 100%, jako vademecum na wszystkie problemy bezpieczeństwa.

Wtyczka do bezpieczeństwa WordPress

Wtyczka do bezpieczeństwa WordPress to dyskusyjny pomysł. Poczynając od wydajności, a kończąc na tym, że wtyczki te często same w sobie stanowią większy kawałek kodu i tym samym – możliwą podatność. Osoby bez żadnej wiedzy technicznej, mające wybór między nie robieniem niczego, a stosowaniem takiej wtyczki – najczęściej wybiorą wtyczkę. Gorąco zachęcam jednak do samodzielnego konfigurowania zagadnień, związanych z bezpieczeństwem wszędzie, gdzie to możliwe. Żadna z opcji opisanych w tym artykule nie tworzy dodatkowych podatności, ponieważ nie wprowadzają one nowego kodu, który mógłby być źródłem takowej.

Zabezpieczenia WordPress – obsługa formularzy

Zabezpieczenia WordPress pod kątem formularzy częściowo poruszyłem już wcześniej, pod kątem certyfikatu SSL czy ochrony strony logowania. Natomiast pozostaje dość obszerne zagadnienie ochrony formularzy „normalnych”, przeznaczonych dla użytkowników, np. takich związanych z komentowaniem albo rejestracją w serwisie.

Pokrótce można powiedzieć, że tego typu formularze są narażone na wiele różnych czynników ryzyka:

  • podanie niepełnych danych
  • podanie fałszywych danych
  • spamerskie komentarze w celu pozyskania linków
  • floodowanie – zapchanie formularza przez boty wieloma zgłoszeniami w krótkim czasie
  • spam mailowy, obniżający reputację Twojej domeny (jeśli formularz podłączyłeś pod wysyłkę mailową).

Jeśli interesuje cię zabezpieczenie formularzy WordPress, to polecam wpis Artura Pajkerta o bezpieczeństwie formularza WordPress, ponieważ jest to zagadnienie dość obszerne.

Zabezpieczenia WordPress wdrożone, a jednak udało się włamać, co teraz?

Nie wszystko da się przewidzieć i nie przed każdym zdarzeniem da się uchronić. Kopie bezpieczeństwa to kwestia priorytetowa. Kopia zapasowa ratuje nas, nie tylko przed konsekwencjami ewentualnej infekcji, ale również w przypadku problemów ze stroną.

Popularne powiedzenie mówi, że ludzie dzielą się na 3 grupy:

  • tacy, którzy robią kopie zapasowe,
  • co myślą, że robią kopie,
  • którzy zaczną robić kopie.

W przypadku infekcji, dzięki regularnym backupom łatwo możemy ją przywrócić do stanu sprzed ataku. Usuwamy wszystko i przywracamy z kopii. Kopie można wykonywać także samodzielnie. Własne kopie zapasowe będą dodatkowym wsparciem dla zabezpieczeń oferowanych przez firmy hostingowe. Taka metoda usuwania wirusów ze strony WordPress jest bardzo skuteczna i można zlecić to firmie, która zajmuje się takimi usługami.

Wspominając też o hostingach – większość z nich prowadzi kopie zapasowe, ale nie wszystkie robią to równie dobrze, jak cyber_Folks. Dobry hosting dla WordPress zawsze dba też o bezpieczeństwo swoich klientów, co sporo upraszcza. Pamiętaj, aby stawiać na taki, który kopie wykonuje codziennie lub częściej i przechowuje je możliwie długo. Dobrze, jeśli kilka tygodni. Istotne jest też to, że możesz przywracać je samodzielnie, bez konieczności kontaktu ze wsparciem technicznym.

Mimo wszystko – zalecam tworzyć własne kopie. Tygodniowe, miesięczne, kwartalne i trzymać w domowym zaciszu, a najlepiej na zewnętrznym, szyfrowanym dysku. Może i to czasem na wyrost, ale jednak – przezorny zawsze ubezpieczony.

Dotarliśmy razem do końca wpisu. Mamy nadzieję, że uważasz tę wiedzę za przydatną. Będzie mi miło, jeśli się nią podzielisz w sieciach społecznościowych i zostawisz komentarz poniżej.

Paweł Otlewski
>
Paweł Otlewski
Paweł Otlet otlewski, pasjonat serwerów i WordPress'a.

21 odpowiedzi do "Zabezpieczenia WordPress. A Ty – co zrobiłeś dla Twojej strony?"

  1. Czytelnik pisze:

    Witam,
    warto też zaglądać np. na takie strony jak ta: https://perishablepress.com/6g/
    czy jeszcze od czasu do czasu sprawdzać swoje zabezpieczenia WP wtyczką: https://pl.wordpress.org/plugins/security-ninja/
    Korzystać z kilkuetapowego logowania np.: https://www.miniorange.com/2-factor-authentication-for-wordpress, a przedtem z prostej autoryzacji innym loginem i hasłem na serwerze, itd.
    Choć oczywiście pomysłów na zabezpieczenia jest bardzo wiele…
    Zastanawiam się jednak dlaczego pomimo istnienia tylu sposobów, deweloperzy WP nie zaimplementowali w samym silniku przynajmniej tych najlepszych/najskuteczniejszych – przecież dla ogromnej większości zwykłych użytkowników byłoby to wybawieniem z potencjalnych problemów z WP?
    Czy programiści i projektanci WordPress’a celowo zostawili takie „dziury” w swoim produkcie, aby zarabiać na wtyczkach zabezpieczających?

  2. Czytelnik pisze:

    I jeszcze jedno…
    Ten wpis powstał na stronie firmy hostingowej, więc nasuwa się pytanie czy dla tych użytkowników, którzy korzystają tu z WordPress’a zapewniacie jakieś, być może nawet dodatkowo płatne, zabezpieczenia lub czy zobowiązujecie użytkowników do stosowania jakichś minimalnych waszym zdaniem koniecznych zabezpieczeń, tak aby awaria/przeciążenie na jednym blogu u jakiegoś użytkownika nie wpływała na strony innych użytkowników na dzielonych serwerach? Przy WordPressie można by żądać wręcz stosowania pewnych wpisów w .htaccess i dodatkowych metod zabezpieczania blogu uznanych z ogólnie zalecane i sprawdzone.

    1. Artur Pajkert pisze:

      Problemy z blogiem jednego klienta nie wpływają na działanie innych klientów ze względu na odpowiednią separację użytkowników. Natomiast jako firma hostingowa jak najbardziej dostarczamy dodatkowych możliwości. Stosujemy systemy WAF dla wyłapania popularnych ataków, w pakietach hostingu WordPress znajduje się bezpłatny audyt bezpieczeństwa, a do naszej oferty włączamy stopniowo produkty zwiększające bezpieczeństwo, jak AutoUpdater, pozwalający łatwo zachować aktualność strony.

  3. Ola pisze:

    czy to polecenie nie musi być domknięte?
    <?php
    add_filter(‚auto_update_plugin’, ‚__return_true’ );
    add_filter(‚auto_update_theme’, ‚__return_true’ );
    add_filter(‚auto_update_translation’, ‚__return_true’ );
    ???
    wg mnie powinno być tak

    pytam dlatego, ze osoby ktore maja pojecie o programowaniu dodadza to, a Ci co nie… no coż

    1. Artur Pajkert pisze:

      Domykanie jest dyskusyjne. Jeśli domyka się prawidłowo i ma się 100% pewności, że tak się zawsze zrobi, to można domykać, ALE serwer generalnie sam to sobie domknie, natomiast jeśli domykamy ręcznie, a potem omyłkowo jakieś znaki znajdą się po domknięciu – to może się okazać, że one zepsują działanie strony. Przykładowo, jeśli kod wykonywany w dalszej kolejności miałby wykonać przekierowanie funkcją header(’Location… ’) to nie powiedzie się ono, jeśli na ekranie wcześniej zostaną wydrukowane znaki. Może tak się zdarzyć, kiedy po domknięciu poprzez ?> znajdzie się jeszcze jakiś np. biały znak (czyli niewidoczny normalnie na ekranie, ale liczony już jako znak przekazany przeglądarce). Wiele frameworków wręcz zaleca, żeby nie domykać. Ciekawa dyskusja na ten temat jest tutaj: https://stackoverflow.com/questions/4410704/why-would-one-omit-the-close-tag

      1. Tutaj zgodzę się z Arturem, że dodawanie tagu zamykającego to proszenie się o proste, trudne do zauważenia błędy. To samo zachowanie interpretera zauważymy dodając jakikolwiek (nie tylko biały znak) przed otwarciem tagu PHP, a następnie już w logice aplikacji próbując zmienić zawartość nagłówków. Według interpretera, skoro zamieściliśmy treść body – czyli ten znak przed otwarciem – to wysyłamy już treść i nie będziemy przesyłać zmienionych headerów.
        Analogicznie jest z zamykającym tagiem, przy tym, że dobrą praktyką jest nie dodawanie tagu i łatwo pozwala uniknąć podstawowych błędów podczas programowania w aplikacjach w języku PHP.

        Np.: w Python dobrą praktyką jest pozostawienie ostatniej linii pustej (lub dodanie takiej) i to też chroni przed błędami, gdyż koniec pliku nie jest również końcem linii programu i w bardzo specyficznych warunkach – nie zgłosił błędu lub podania błędnego wyniku. Przypominam, że wcięcia są w Python ważne.

  4. infomiasto.eu pisze:

    W zasadzie to jedna dobra wtyczka bezpieczeństwa może rozwiązać dużo tych problemów. Choć dobrze jeszcze ręcznie nanieść zmiany. Świat teraz zepsuty i nie można otwierać drzwi bo zaraz okradną dom jakim jest strona. Dobra wtyczka to przykładowo all in one seciurity i firewall do wordpress.

    1. Problem z wtyczkami jest taki, że taka „dobra wtyczka”, która to wszystko robi może mieć luki bezpieczeństwa i dodatkowo narażać na ataki.

  5. Nat pisze:

    ’ Warto również pomyśleć o zabezpieczeniu innych plików, które nie są użyteczne dla standardowego użytkownika’ czy po blokadzie dostępu do htaccess, my jako admin będziemy mieli do nich dostęp?

    1. Wszystko jest zależne jak zablokujesz i co chcesz blokować. W przypadku plików w wp-includes nie łączysz się do nich bezpośrednio z poziomu swojej przeglądarki, więc .htaccess na spokojnie może zablokować tam ruch z zewnątrz – ruch w aplikacji jednak będzie przebiegać bez przeszkód.

  6. Ciekawe porady, dzięki! Od siebie dodam, że czasem jednak edycja szablonu z poziomu edytora WP bywa konieczna, np. gdy pojawia się jakaś awaria, a mamy do dyspozycji tylko smartfon.

  7. Admin pisze:

    Nie wspomnieliście o tym żeby plikami wordpressa zarządzac z innegi uzytkownika niż użytkownik serwera www. Nie może dojść do sytuacji że serwer www jest w stanie modyfikować kod aplikacji.

  8. Robert pisze:

    Świetny wpis, dzięki za informacje! W tym tygodniu na pewno wdrożę w życie którąś z porad. Na razie zainstalowałem wtyczkę Dupilikator w ramach backupu danych, ale chcę się też zabezpieczyć przed włamem na stronę

  9. Tomek pisze:

    Ludzie dzielą się na tych co robią backupy i tych którzy będą mieli włam/stratę danych i będę robili backupy. Dopiero po włamie na jedną z moich stron zacząłem interesować się bezpieczeństwem. Dzięki za soczysty w wiedzę artykuł.

  10. Łukasz pisze:

    Warto zaktualizować artkuł – „Sam mogę polecić wtyczki takie jak Cerber (…)” – https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/wp-cerber. No właśnie, tak to jest z tymi wtyczkami…

  11. Randomowy Informatyk pisze:

    Przy okazji tu trafiłem ale artykuł mnie zaciekawił więc dorzucę swoje 3 grosze. Dobry pomysł to użycie GIT do kontroli wersji i analizy co się stało i co zostało podmienione w systemie plików na stronie przez atakującego już po fakcie. Często na hostingach z dostępem do shella mamy możliwość użycia tego narzędzia. Zwykle przełamanie zabezpieczeń nastąpiło dużo wcześniej niż późniejsze działanie i możemy już nie dysponować backupem systemu plików (retencja backupów na hostingu). Oczywiście możemy na nowo poskładać wordpressa i wtyczki albo użyć właśnie gita do cofnięcia zmian nieautoryzowanych przez nas, które nie zostały zatwierdzone (commit).
    Zatwierdzamy co jakiś czas jak wykonyjemy update Core WordPress lub przeglądamy czy zmiany to tylko automatyczny update wtyczek/theme. Dobrze też użyć starego dobrego rsynca i regularnie zrzucać jakieś dumpy baz MySQL w inne miejsce by mieć jakieś archiwalne (czyste) bazy do poskładania. W bazie też można umieścić zmiany, które pojawią się na stronie podczas jej renderowania, a dostęp do FS = dostęp do wszystkiego.

  12. Arek pisze:

    Wasz artykuł pomógł mi częściowo uporządkować zabezpieczenia w WordPressie. Będę kontynuował pracę nad nimi inspirując się właśnie tym wpisem!

  13. Kacper pisze:

    Przydatny artykuł o zabezpieczeniach w WP. Sam stosuję w praktyce te porady i dodatkowo aktualne wtyczki zabezpieczeń, które pomagają dodatkowo pozabezpieczać różne aspekty strony internetowej.

  14. Michał pisze:

    Świetny artykuł! Bardzo podoba mi się, że porusza zarówno podstawowe, jak i bardziej zaawansowane kwestie zabezpieczeń WordPressa. Fajne jest też to, że wszystko jest jasno wytłumaczone, a przykłady kodu naprawdę pomagają w praktycznym wdrożeniu zmian. Na pewno skorzystam z kilku wskazówek.

    1. Artur Pajkert pisze:

      Dziękujemy, bardzo nam miło!

  15. Przemysław pisze:

    Metod zabezpieczających jest wiele. Ja odszedlem od WordPressa i wykonuje strony ta poloca bootsrapa, stabilniej i mniej problemów.

Dodaj komentarz

Twój adres e-mail nie będzie opublikowany.

Polecane dla Ciebie

Szukasz dalej?

Przeglądaj wg dat
  • Przeglądaj wg dat
  • marzec 2025
  • luty 2025
  • styczeń 2025
  • grudzień 2024
  • listopad 2024
  • październik 2024
  • wrzesień 2024
  • sierpień 2024
  • lipiec 2024
  • czerwiec 2024
  • maj 2024
  • kwiecień 2024
  • marzec 2024
  • luty 2024
  • styczeń 2024
  • grudzień 2023
  • listopad 2023
  • październik 2023
  • wrzesień 2023
  • sierpień 2023
  • lipiec 2023
  • czerwiec 2023
  • maj 2023
  • kwiecień 2023
  • marzec 2023
  • luty 2023
  • styczeń 2023
  • grudzień 2022
  • listopad 2022
  • październik 2022
  • wrzesień 2022
  • sierpień 2022
  • lipiec 2022
  • czerwiec 2022
  • maj 2022
  • kwiecień 2022
  • marzec 2022
  • luty 2022
  • styczeń 2022
  • grudzień 2021
  • listopad 2021
  • październik 2021
  • wrzesień 2021
  • sierpień 2021
  • lipiec 2021
  • czerwiec 2021
  • maj 2021
  • kwiecień 2021
  • marzec 2021
  • luty 2021
  • styczeń 2021
  • grudzień 2020
  • listopad 2020
  • październik 2020
  • wrzesień 2020
  • sierpień 2020
  • lipiec 2020
  • czerwiec 2020
  • maj 2020
  • kwiecień 2020
  • marzec 2020
  • luty 2020
  • styczeń 2020
  • grudzień 2019
  • listopad 2019
  • październik 2019
  • wrzesień 2019
  • sierpień 2019
  • lipiec 2019
  • czerwiec 2019
  • maj 2019
  • kwiecień 2019
  • marzec 2019
  • styczeń 2019
  • grudzień 2018
  • listopad 2018
  • październik 2018
  • sierpień 2018
  • lipiec 2018
  • maj 2018
  • kwiecień 2018
  • marzec 2018
  • styczeń 2018
  • grudzień 2017
  • październik 2017
  • czerwiec 2017
  • kwiecień 2017
  • marzec 2017
  • luty 2017
  • styczeń 2017
  • grudzień 2016
  • listopad 2016
  • październik 2016
  • wrzesień 2016
  • sierpień 2016
  • lipiec 2016
  • czerwiec 2016
  • maj 2016
  • kwiecień 2016
  • marzec 2016
  • lipiec 2015
  • maj 2015
  • grudzień 2014
  • sierpień 2014
  • lipiec 2014
  • czerwiec 2014
  • kwiecień 2014

Chat online

Cześć!

Zapraszamy do rozmowy, chętnie odpowiemy na Twoje pytania. Jeśli dotyczą one bezpośrednio posiadanych przez Ciebie usług, zalecamy wcześniejsze zalogowanie się do swojego panelu klienta. Dzięki autoryzacji będziemy mogli zaoferować pomoc w szerszym zakresie.

Zachęcamy też do sprawdzenia naszej sekcji wsparcia na https://cyberfolks.pl/pomoc.

Aktualny stan pracy serwerów:

Autoryzacja: nieautoryzowany - Zaloguj się

W związku z przepisami o ochronie danych osobowych informujemy, kto i na jakich zasadach będzie administrować Twoimi danymi: Polityka prywatności cyber_Folks S.A.