Ograniczyć próby 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 umożliwia nieograniczoną liczbę prób logowania poprzez formularz logowania, wysyłanie specjalnych plików cookie, korzystanie z wywołań XML-RPC i wywołań API REST. Pozwala to na stosunkowo łatwe łamanie haseł za pomocą ataku brute-force. W dzisiejszych czasach hakerzy i boty nieustannie próbują zalogować się do Twojej witryny WordPress, odgadując Twoje hasło administratora i hasła innego użytkownika zarejestrowanego w witrynie. Jeśli więc chcesz chronić swoją witrynę bez użycia wtyczki, potrzebujesz:
- Znaj dobrze PHP .
- Dowiedz się wystarczająco dużo o filtrze uwierzytelniającym i działaniu (wbudowanym w WordPress), aby je zaczepić. Polecam zacząć od haków takich jak „uwierzytelnij” i „wp_login_failed”.
- Śledź formularz logowania po wpisie, żądania autoryzacji XML RPC i REST API i tak, nie zapomnij o plikach cookie autoryzacji (czy są ważne?).
- Zapisz gdzieś wszystkie próby logowania i wszystkie adresy IP, aby obliczyć, kiedy i jakie IP należy zablokować. Polecam używać Transient API. Poważnie. To najprostszy sposób. Oczywiście nie można tego kontrolować, ale użycie go pozwala zrobić coś bez znajomości SQL.
- Oblicz czas pomiędzy nieudanymi próbami logowania dla danego adresu IP.
- Posiadaj narzędzie lub kod PHP do resetowania dowolnego z tych liczników i zablokowanego adresu IP klienta. Co się stanie, jeśli jakiś legalny klient zostanie przypadkowo zablokowany?
Wygląda szalenie? Masz drugą opcję. Możesz wyszukać w Google i pobrać fragmenty kodu z jakiegoś bloga w Internecie bez żadnej gwarancji i wsparcia.
Wniosek: W Internecie można znaleźć wiele porad, jak ograniczyć próby logowania bez wtyczki. Ale wszelkich rad udzielają osoby, które nawet nie wiedzą, jak dokładnie działa algorytm uwierzytelniania WordPressa, w tym ci mili goście ze Stackoverflow. Ale w każdym razie możesz to zrobić, jeśli naprawdę nie martwisz się o bezpieczeństwo swojej witryny, ponieważ nie ma możliwości zrobienia tego dobrze bez umiejętności kodowania PHP i znajomości mechanizmu uwierzytelniania WordPress.