Security Blog
Security Blog

Ograniczyć liczbę prób logowania bez wtyczki?

Jak chronić stronę logowania WordPress bez użycia wtyczki


English version: Limit login attempts without a plugin?


W internecie można znaleźć mnóstwo komentarzy i porad na ten temat. Ale czy to prawda?

Domyślnie WordPress zezwala na nieograniczoną liczbę prób logowania za pomocą formularza logowania, wysyłania specjalnych plików cookie, wywołań XML-RPC oraz wywołań REST API. Pozwala to na stosunkowo łatwe łamanie haseł za pomocą ataku siłowego. Obecnie hakerzy i boty nieustannie próbują zalogować się do Twojej witryny WordPress, zgadując Twoje hasło administratora i hasła innych zarejestrowanych użytkowników. Jeśli więc chcesz chronić swoją witrynę bez użycia wtyczki, potrzebujesz:

  1. Dobra znajomość PHP .
  2. Musisz mieć wystarczającą wiedzę o filtrze uwierzytelniania i akcji (wbudowanych w WordPress), aby je podłączyć. Polecam zacząć od haków takich jak „authenticate” i „wp_login_failed”.
  3. Śledź formularz logowania, żądania autoryzacji XML RPC i REST API, a także nie zapomnij o plikach cookie autoryzacyjnych (czy są prawidłowe?).
  4. Przechowuj gdzieś wszystkie próby logowania i adresy IP, aby obliczyć, kiedy i jaki adres IP należy zablokować. Polecam użycie Transient API. Serio. To najłatwiejszy sposób. Oczywiście nie masz nad tym kontroli, ale dzięki niemu możesz coś zrobić bez znajomości SQL.
  5. Oblicz czas pomiędzy nieudanymi próbami logowania dla danego adresu IP.
  6. Masz narzędzie lub kod PHP, aby zresetować którykolwiek z tych liczników i zablokowanych adresów IP klientów? Co jeśli jakiś legalny klient zostanie przypadkowo zablokowany?

Wygląda szalenie? Masz drugą opcję. Możesz poszukać w Google i pobrać fragmenty kodu z jakiegoś bloga w internecie, bez żadnej gwarancji i wsparcia.

Podsumowanie: W internecie można znaleźć mnóstwo porad, jak ograniczyć próby logowania bez użycia wtyczki. Wszystkie porady pochodzą jednak od osób, które nie wiedzą nawet, jak dokładnie działa algorytm uwierzytelniania WordPressa, w tym od miłych osób ze StackOverflow. Możesz to zrobić, jeśli naprawdę nie martwisz się o bezpieczeństwo swojej witryny, ponieważ bez umiejętności programowania w PHP i znajomości mechanizmu uwierzytelniania WordPressa nie ma możliwości, aby zrobić to poprawnie.

Jeśli na Twojej stronie pojawi się coś podejrzanego, do kogo się zgłosisz?


I'm a team lead in Cerber Tech. I'm a software & database architect, WordPress - PHP - SQL - JavaScript developer. I started coding in 1993 on IBM System/370 (yeah, that was amazing days) and today software engineering at Cerber Tech is how I make my living. I've taught to have high standards for myself as well as using them in developing software solutions.

View Comments
There are currently no comments.