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:
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