Nie możesz zalogować się do panelu WordPressa? Winna może być firma hostingowa.

W ostatnich dniach otrzymałem kilka pytań związanych z brakiem możliwości zalogowania się do panelu administracyjnego WordPressa. Wszystkie te przypadki miały jedną wspólną cechę: próby wejścia do panelu kończyły się komunikatem Nie znaleziono strony, wskazującym na brak pliku wp-login.php, w którym odbywa się cały proces logowania.

Okazało się, że niektóre firmy hostingowe (między innymi bardzo popularny Home.pl) bez wiedzy klientów i bez przesłania im jakiejkolwiek informacji zmieniają nazwę pliku wp-login.php na wp-login.php.blocked. I mimo że działanie to ma swoje uzasadnienie, to sposobu, w jaki cała akcja została przeprowadzona, nie można nazwać profesjonalnym.

Dlaczego nazwa pliku wp-login.php została zmieniona?

W ciągu kilku ostatnich miesięcy nasiliły się ataki na serwisy działające na WordPressie. Większość tych ataków polega na długotrwałych i intensywnych próbach zalogowania się do panelu administracyjnego, najczęściej wykorzystując listy popularnych haseł. Ataki te są problemem dla firm hostingowych, ponieważ dosyć poważnie obciążają ich serwery.

Skrypty wykonujące próby logowania korzystają właśnie ze wspomnianego pliku wp-login.php. Jedną z prostszych metod na zablokowanie takiego ataku i zmniejszenie związanego z nim obciążenia serwera jest usunięcie tego pliku lub zmiana jego nazwy (na przykład na wspomniane wp-login.php.blocked).

Warto dodać, że w niektórych przypadkach w analogiczny sposób zmieniane były również nazwy plików admin-ajax.phpajax-actions.php (przez co nie działa większość funkcji wykorzystujących AJAX).

Jak przywrócić możliwość logowania?

Wystarczy połączyć się ze swoim serwerem przez FTP (odpowiednie instrukcje znajdują się w dokumentacji udostępnianej przez firmę hostingową) i zmienić nazwę pliku wp-login.php.blocked z powrotem na wp-login.php. Oczywiście zmieniona nazwa pliku może być różna, w zależności od firmy hostingowej.

Jak chronić swój serwis przed tego typu atakami?

Przywrócenie pliku wp-login.php rozwiązuje problem braku możliwości zalogowania się do panelu administracyjnego, ale pozostaje jeszcze kwestia powracających co jakiś czas ataków. Aby się przed nimi uchronić można zezwolić na dostęp do pliku wp-login.php tylko z naszego adresu IP przez wprowadzenie odpowiedniej reguły do pliku .htaccess:


Order Allow,Deny
Allow from 111.222.333.444
Deny from all

Można również skorzystać z jednej z dostępnych wtyczek poprawiających bezpieczeństwo WordPressa, takich jak iThemes Security (dawniej Better WP Security) czy WordFence Security.

Nieprofesjonalne podejście do klienta

Modyfikowanie zawartości serwera bez poinformowania o tym klienta jest w moim przekonaniu wysoce nieprofesjonalne. Sam fakt zmieniania nazw plików na serwerze z uwagi na bezpieczeństwo nie jest problemem – problemem jest brak komunikacji.

Przy okazji warto wspomnieć, że „dostaje się” nie tylko użytkownikom WordPressa, ale również sklepów opartych na PrestaShop. W tym przypadku blokowany jest między innymi plik index.php, w skutek czego cały sklep przestaje po prostu działać.

Bezpośredni link