Jak zabezpieczyć stronę na WordPress

Tym razem będzie o bezpieczeństwie. Chodzi o ochronę witryny WordPress przed atakami, atakami brute force, złośliwym oprogramowaniem i innymi śmieciami, które mogą dostać się na naszą stronę. Jeśli chodzi o sprawy życia i bezpieczeństwa, WP nie jest w 100% bezpieczny, ale możesz zmniejszyć ryzyko, przestrzegając kilku zasad, które omówię poniżej.

Na początek mówię odrazu ze nie będzie nic o wtyczkach – może kilka słów, ale nie w kontekście tego, jakich użyć.  Każda wtyczka jest potencjalnym zagrożeniem – zwłaszcza gdy instalujesz wtyczki z „nielegalnych” źródeł lub przynajmniej nie aktualizujesz wtyczek regularnie. Wiele osób poleca Wordfence – dobrze, ale jakiś czas temu miał lukę i zamiast go chronić pozostawił „szkodniki” na stronie. Tak, więc nie mam do niej zaufania

Cóż, nadszedł czas, aby znaleźć sposoby na zwiększenie bezpieczeństwa witryny WordPress bez wtyczek. Co prawda nie wyczerpię tego tematu, ale wskażę kilka podstaw, które sprawią, że Twoja strona będzie bezpieczniejsza.

ODPOWIEDNIO DOBIERAMY HOSTING

Przeczytaj recenzje witryn hostingowych pod kątem bezpieczeństwa. Hosting współdzielony, bez rozdzielenia usług, ma tę funkcję, dzięki której różne rzeczy mogą się łatwo przenosić między stronami. Starannie wybierz swojego dostawcę usług internetowych

NIE UŻYWAMY LOGINU ADMIN

Jaki jest najczęściej wybierany login podczas instalacji WordPressa (nie tylko WordPressa)? admin. Którą opcję pierwszą sprawdzi haker? admin. Jaki jest z tego morał? Użyj mniej oczywistej nazwy użytkownika z uprawnieniami administratora.

STOSUJEMY SKOMPLIKOWANE HASŁA

Zwykle, aby łatwiej było je zapamiętać, używamy banalnego hasła, takiego jak qwerty123. Głupota. Wraz z równie ambitnym loginem administratora otwieramy szeroko drzwi dla hakerów. Nie żartuję. Wybieraj więc bardziej złożone hasła, najlepiej, aby zawierały zarówno wielkie, jak i małe litery, a także znaki specjalne i cyfry. Jeszcze jedna uwaga – nie używaj tego samego hasła do WordPress, bazy danych, co do ftp lub innego powiązania z Twoją witryną. I ostatnia rada dotycząca haseł – ustaw silne hasła dla wszystkich miejsc połączonych z witryną. Aha, i jeszcze jedno – oto ostatnia – nie zapisuj haseł w przeglądarce

AKTUALIZUJEMY MOTYWY, WTYCZKI I SAMEGO WORDPRESSA

Często zapominamy, że choć jak byk, po wejściu do dashboardu WP może pojawić się komunikat o nieaktualizowaniu elementów strony. Kliknij te aktualizacje. Zajmie to kilka minut i może uratować ci życie. UWAGA: Przed rozpoczęciem aktualizacji warto zapisać stronę – zdarzają się sytuacje, w których może się nie udać, zwłaszcza jeśli nie aktualizowałeś czegoś od dłuższego czasu i chcesz nagle pominąć jakąś wyższą wersję.

USUWAMY NIEUŻYWANE I ZBĘDNE WTYCZKI ORAZ MOTYWY

Często testujemy różne motywy i wtyczki, te które nam nie podpasują potem sobie leżą w zapomnieniu nieaktywne. Przejrzyj dodatki i usuń niepotrzebne. Będzie bezpieczniejszy i łatwiejszy oraz będzie miał więcej miejsca na serwerze

KORZYSTAMY WYŁĄCZNIE Z ZAUFANYCH ŹRÓDEŁ WTYCZEK I MOTYWÓW

Nie instaluj wtyczek/motywów z losowych źródeł, zwłaszcza wtyczek nielegalnych. Oprócz aspektu prawnego, wiele z tych dodatków zawiera wirusy jako bonus.

WYŁĄCZAMY MOŻLIWOŚĆ REJESTRACJI PRZYPADKOWYCH OSOBNIKÓW

Jeśli nie potrzebujesz opcji rejestracji użytkownika, wyłącz ją. Można to zrobić w Ustawieniach.

INSTALUJEMY CERTYFIKAT SSL

SSL to nie tylko zielona kłódka – faktycznie zwiększa bezpieczeństwo danych przesyłanych przez stronę.

A teraz wyższa szkoła jazdy….

USTAWIAMY INNY PREFIX DLA TABEL W BAZIE DANYCH NIŻ TEN STANDARDOWY

Standardowy prefiks bazy danych to wp_ – możesz to zobaczyć w wp-config.php. Podczas instalacji WordPressa (później też możliwe, ale bardziej skomplikowane) zamiast wp wpisz własną grupę liter, która będzie prefiksem naszej bazy danych.

GENERUJEMY WŁASNE KLUCZE ZABEZPIECZAJĄCE DANE PRZECHOWYWANE W CIASTECZKACH

Plik wp-config.php zawiera również klucze bezpieczeństwa danych przechowywane w pliku cookie. To jest coś takiego:

zabezpieczanie wp

Tutaj możesz wygenerować własny klucz: https://api.wordpress.org/secret-key/1.1/salt/

PRZENOSIMY DANE BAZY

Ponieważ jesteśmy w pliku wp-config.php, szukamy fragmentu:

define('DB_NAME', 'moja_baza');
define('DB_USER', 'moj_user');
define('DB_PASSWORD', 'moje_haslo');
define('DB_HOST', 'moj_host');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

i skopiuj je do innego pliku – na przykład wp-config-data.php, następnie dodaj w wp-config.php

require_once "wp-config-data.php";

UKRYWAMY BŁĘDY

Nadal jesteśmy w pliku wp-config.php. Szukamy

define('WP_DEBUG', false);

i zamieniamy ten fragment na:

define('WP_DEBUG', false);
if ( ! WP_DEBUG ) {
ini_set('display_errors', 0);
}

INNA NAZWA BAZY DANYCH I JEJ UŻYTKOWNIKA

Byłoby miło, gdyby baza danych i użytkownicy mogli wybierać różne nazwy, jeśli to możliwe. Niestety istnieją plany hostingowe, które nakładają na nas te same dwie nazwy, więc musimy się z tym pogodzić i przynajmniej wybrać skomplikowane hasło.

WYŁĄCZAMY MOŻLIWOŚĆ EDYCJI PLIKÓW MOTYWU I WTYCZEK PRZEZ PANEL WORDPRESS

Standardowo w WordPressie możesz edytować pliki motywów i wtyczek bezpośrednio z tzw. dashboardu. Ponieważ pulpit nawigacyjny WP jest często bardziej podatny na włamania niż hosting, ta opcja powinna być wyłączona. Można to zrobić w wp-config.php, dodając do niego fragment:

define('DISALLOW_FILE_EDIT', true);

USUWANY INFORMACJE O WERSJI WORDPRESSA

Aby ukryć używaną przez nas wersję WP, wystarczy dodać następujący kod do pliku functions.php:

function remove_version_info() { return ''; } add_filter('the_generator', 'remove_version_info'); remove_action('wp_head', 'wp_generator');

BLOKUJEMY DOSTĘP DO PLIKU wp-login.php

Najłatwiejszym sposobem ochrony tego pliku jest dodanie takiej magii w .htaccess:


RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} !^http://(.*)?.nasza-domena.pl [NC] RewriteCond %{REQUEST_URI} ^/wp-login\.php(.*)$
RewriteRule ^(.*)$ - [R=403,L]

BLOKUJEMY DOSTĘP DO PLIKU xmlrpc.php

Ten plik jest drugim najczęściej atakowanym plikiem (pierwszy plik to wp-login.php). Jeśli nie korzystasz z interfejsu XML-RPC, możesz go całkowicie wyłączyć, dodając .htaccess:


order deny,allow
deny from all

BLOKUJEMY DOSTĘP DO KOLEJNYCH PLIKÓW

Istnieją pliki, do których nikt z zewnątrz nie ma dostępu. Nie będę o tym mówił, ale podam niezbędne „krzaki” w pliku .htaccess.

<FilesMatch "wp-config.*\.php|\.htaccess|readme\.html">
Order allow,deny
Deny from all

WŁĄCZAMY ZABEZPIECZENIA DLA wp-includes

W katalogu wp-include tworzymy plik .htaccess i dodajemy go

<FilesMatch "\.(?i:php)$">
Order allow,deny
Deny from all

Allow from all

Allow from all

WŁĄCZAMY ZABEZPIECZENIA DLA wp-content

W folderze wp-content tworzymy plik .htaccess i dodajemy go

<FilesMatch "\.(?i:php)$">
Order allow,deny
Deny from all

UWAGA: niektóre wtyczki i motywy mogą czasami przestać działać, więc koniecznie sprawdź, jak to działa u Ciebie

Maszy pytania?
Skontaktuj się z nami 😉