WordPress: zabezpieczenie ekranu logowania hasłem

Loginy w WordPressie są jawne. Haker może je poznać na kilka różnych sposobów, np. dodając do adresu strony ciąg ?author=1 (adres zostanie przekierowany i zobaczysz swój login w pasku adresu) lub /wp-json/wp/v2/users/1. Dlatego, aby włamać się na stronę, wystarczy zgadywać hasło.

A i tu zadanie jest ułatwione, bo istnieją listy najpopularniejszych haseł. Na tej stronie znajdziesz 14 milionów najbardziej popularnych haseł: https://md5hashonline.com/most-common-passwords/. Lista została sporządzona na podstawie wycieków danych. Sprawdź, czy nie ma tu Twojego hasła 😉 Hakerzy dysponują takimi listami i wystarczy, że zapuszczą program, który będzie próbował się zalogować na Twoją stronę za pomocą z góry znanego loginu i hasła z listy. I nieszczęście gotowe.

Istnieją różne sposoby zabezpieczenia się przed włamaniem. Jednym z nich jest zabezpieczenie strony logowania dodatkowym loginem i hasłem. Czyli musisz podać login i hasło, żeby móc w ogóle dostać się do strony logowania. Robi się to, umieszczając na serwerze plik .htpasswd i modyfikując plik .htaccess.

Utworzenie pliku .htpasswd

Plik .htpasswd składa się z jednej linii i zawiera login i zaszyfrowane hasło. Przykładowo, plik .htpasswd dla loginu „login” i hasła „haslo” będzie wyglądał tak:

login:$apr1$rpxwht0z$f8rFbJAl0fq5D3FOcVlPe1

Zawartość pliku możesz wygenerować za pomocą jednego z narzędzi dostępnych online, np. https://wtools.io/generate-htpasswd-online.

Tak utworzony plik umieść na serwerze poza katalogiem public_html, czyli piętro wyżej niż katalog wp-content:

Modyfikacja pliku .htaccess

Gdy masz już plik .htpasswd, musisz zmodyfikować główny plik .htaccess, aby serwer żądał podania loginu i hasła, gdy ktoś wchodzi na stronę logowania. Plik .htaccess znajdziesz w katalogu głównym WordPressa:

Na jego początku dodaj poniższy kod:

# Protect wp-login.php
<Files wp-login.php>
  AuthUserFile /usr/home/twoje-konto/domains/twoja-domena/.htpasswd
  AuthName "Zaloguj się"
  AuthType Basic
  require user login
</Files>

Musisz zmienić 2 rzeczy: bezwzględną ścieżkę do pliku .htpasswd i login znajdujący się za ciągiem require user. Ten login musi zgadzać się z tym, co jest w pliku .htpasswd.

Ostatecznie Twój plik .htaccess powinien wyglądać mniej więcej tak:

# Protect wp-login.php
<Files wp-login.php>
  AuthUserFile /usr/home/twoje-konto/domains/twoja-domena/.htpasswd
  AuthName "Zaloguj się"
  AuthType Basic
  require user login
</Files>

# BEGIN WordPress
# Dyrektywy zawarte między "BEGIN WordPress" oraz "END WordPress"
# są generowane dynamicznie i powinny być modyfikowane tylko za pomocą
# filtrów WordPressa. Zmiany dokonane bezpośrednio tutaj będą nadpisywane.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

I gotowe!

Teraz, gdy odwiedzisz swój ekran logowania wp-admin, wyskoczy takie okienko:

Dopóki nie podasz loginu i hasła (uwaga: do zalogowania używamy niezaszyfrowanego hasła), nie będziesz mógł zobaczysz strony logowania.

Pani Marta
Jestem Marta. Pani Marta. Od kilku lat pracuję w WordPressie i ciągle jestem pod wrażeniem jego możliwości. Na moim blogu dzielę się prostymi sposobami na bezwtyczkowe ulepszenie swojej strony. Jeśli brakuje Ci czegoś w tym wpisie lub chcesz, abym poruszyła temat, na którym Ci zależy, daj znać w komentarzu!

Dodaj komentarz

*

*

*

Twój adres e-mail nie zostanie opublikowany.