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:

WordPress: zabezpieczanie ekranu logowania dodatkowym hasłem htpasswd.

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:

Jak edytować .htaccess?

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:

WordPress: zabezpieczanie ekranu logowania dodatkowym hasłem.

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. Na moim blogu dzielę się prostymi sposobami na bezwtyczkowe ulepszenie swojej strony WordPress. 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. Wymagane pola są oznaczone *