Jak zabezpieczyć WordPress’a i wp-login.php?

WordPress to skrypt sam z siebie dość zasobożerny i może obciążyć hosting współdzielony. Zwłaszcza, jeśli udoskonalimy go dodatkowymi wtyczkami. Jest on też jednym z najpopularniejszych skryptów, na których stoją setki milionów stron. Dlatego często jest atakowany przez różnego typu BOTy, które metodą brute force próbują zgadnąć hasło logowania do panelu admina.

Wysyłają one dziesiątki zapytań do pliku wp-login.php i xmlrpc.php próbując włamać się do wnętrza Twojego WordPress’a. Z jednej strony ryzykujesz, że zgadną hasło, jeśli jest ono mało skomplikowane. Z drugiej zaś pożerają zasoby serwera. Warto się przed tym zabezpieczyć. Można to zrobić instalując dedykowane wtyczki, jak np. Limit Login Attempts Reloaded (swoją drogą bardzo dobra wtyczka). Można to jednak wykonać dużo prościej: ograniczając dostęp do plików, które pozwalają zalogować się do skryptu blogowego.

Jak zabezpieczyć pliki WordPress’a wp-login.php i xmlrpc.php?

Pierwszym z tych plików jest plik umożliwiający logowanie do panelu administratora tzn. wp-login.php Drugi plik to xmlrpc.php, który odpowiada za obsługę REST API. Wykorzystują go programy i skrypty, aby bez logowanie do panelu admina móc zarządzać WordPress’em, przede wszystkim umieszczać i edytować wpisy. Jeśli z tej opcji nie korzystać możesz po prostu zmienić nazwę pliku. Jeśli korzystasz lub korzystają z tego inne Twoje skrypty bądź programy to ogranicz dostęp do pliku dla określonych adresów IP.

Całe zabezpieczenie, o którym napiszę, opierać się będzie na umożliwieniu dostępu do pliku tylko konkretnym adresom IP. To zabezpieczenie nie sprawdzi się jeśli korzystasz z dostępu do Internetu ze zmiennym IP. Wtedy zastosujesz ograniczenie w postaci loginu i hasła. Ale o tym dalej.

Zacznijmy od ograniczenia umożliwiającego dostęp tylko wybranemu IP. Jeśli nie znasz swojego adresu IP sprawdzisz je np. na stronie www.myip.com

Jak ograniczyć dostęp do pliku do określonego IP (.htaccess)?

<FilesMatch "wp-login.php">
Order Deny,Allow
deny from all
allow from XX.XX.XX.XX
</FilesMatch>

XX.XX.XX.XX zmieniasz oczywiście na swoje IP. Dla zabezpieczenia pliku xmlrpc.php robisz dokładnie taki sam wpis, zmieniasz tylko nazwę pliku w pierwszej linii kodu. Wpisu tego dokonujesz w pliku .htaccess, który znajdziesz w katalogu z Twoim WordPress’em.

Jak zabezpieczyć dostęp do pliku loginem i hasłem (.htaccess)?

Inną możliwością zabezpieczenia plików jest ograniczenie dostępu poprzez konieczność wpisania loginu i hasła.

<Files wp-login.php>
Order Deny,Allow
Deny from All
Satisfy Any
AuthName "Dostęp Zabroniony"
AuthUserFile .htpasswd
AuthType Basic
Require valid-user
</Files>

Jak przygotować plik .htapasswd i zahashować hasło?

Zapis ten, podobnie jak poprzednio, umieszczasz w pliku .htaccess Aby wszystko działało jak należy musisz utworzyć plik .htpasswd, w którym umieszczony będzie Twój login i hasło. Serwer Apache, na którym działa większość hostingów wymaga, aby hasło było hashowane (zakodowane). Najczęściej do takiego hashowania wykorzystywana jest funkcja crypt() wbudowana m.in. w PHP.

Aby sprawę ułatwić, wejdź na stronę http://aspirine.org/htpasswd_en.html i w lewym oknie „Users and passwords” (usuń z niego treść, jeśli jakaś będzie) wpisz wybrany przez siebie login, a po spacji wpisz hasło. W prawym okienku „Generated htpasswd file” kliknij w „Generate htpasswd content”. Pojawi się Twój login i po dwukropku zakodowane/zahashowane hasło. To wszystko skopiuj do pliku .htpasswd na swoim serwerze. Pliku tkiego na serwerze nie znajdziesz. Musisz go utworzyć. Umieść go w tym samym katalogu, w którym zapisany jest plik .htaccess Jeśli .htpasswd umieścisz w innym katalogu, to w kodzie zabezpieczenia musisz podać ścieżkę dostępu do pliku, zamieniając zapis „AuthUserFile .htpasswd” na „AuthUserFile /katalog/.htpasswd”.

To wszystko. Do dzieła!

Related Posts

jak zablokować roboty ahrefs i majestic

Jak zablokować dostęp do strony botom Ahrefs i Majestic?

Tematy blokowania dostępu do strony internetowej były już na blogu poruszane. Dowiedzieliśmy się już Jak zablokować dostęp do strony niechcianym botom i/lub spamerom oraz Jak zablokować dostęp…

zabezpieczenie strony internetowej przed spamerami

Jak zabezpieczyć stronę przez robotami spamerów?

Wiemy już jak zabezpieczyć formularz kontaktowy przed spamem. Teraz pora dowiedzieć się, jak zabezpieczyć stronę przed robotami spamerów czy niechcianych wyszukiwarek, aby nie drenowały nam serwera lub…

jak napisać formularz kontaktowy z reCAPTCHA

Jak zrobić formularz kontaktowy zabezpieczony reCAPTCHA?

Napisanie formularza kontaktowego w PHP nie jest wcale takie trudne. Jeśli nie wiesz jak napisać formularz kontaktowy lub chcesz zabezpieczyć obrazkiem ReCaptcha swój, istniejący już formularz, to…

samochód do przeprowadzek

Jak zrobić przekierowanie 301 w .htaccess i PHP?

Przekierowanie 301 czyli tzw. Moved Permanently, to coś co każdy mający stronę internetową powinien znać.

Robot Sztucznej Inteligencji (AI)

Jak zablokować dostęp do strony BOTowi ChatGPT (OpenAI)?

Coraz powszechniejsze staje się „pożyczanie” kontentu naszych stron i niewiele jesteśmy w stanie z tym zrobić. Google cytuje ich zawartość w wynikach wyszukiwania, udzielając odpowiedzi na pytania zadane przez użytkowników wyszukiwarki. W ten sposób tracimy ruch organiczny, bo często użytkownik przeczyta treść widoczną na stronie wyników Google, a naszej strony może już nie odwiedzić.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *