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źć wiele komentarzy i porad na ten temat. Ale czy to jest prawdziwe?
Domyślnie WordPress zezwala na nieograniczoną liczbę prób logowania poprzez formularz logowania, wysyłanie specjalnych plików cookie, korzystanie z wywołań XML-RPC i wywołań REST API. Pozwala to na stosunkowo łatwe łamanie haseł za pomocą ataku siłowego. W dzisiejszych czasach hakerzy i boty nieustannie próbują zalogować się do Twojej witryny WordPress, odgadując hasło administratora i hasła innego użytkownika zarejestrowanego na stronie. Jeśli więc chcesz chronić swoją witrynę bez korzystania z wtyczki, potrzebujesz:
- Dobrze znasz PHP .
- Dowiedz się wystarczająco dużo o filtrze uwierzytelniania i akcji (wbudowanej w WordPress), aby je przechwycić. Polecam zacząć od haków, takich jak „authenticate” i „wp_login_failed”.
- Śledź formularz logowania do postu, żądania autoryzacji XML RPC i REST API, i tak, nie zapomnij o plikach cookie autoryzacji (czy są ważne?).
- Przechowuj gdzieś wszystkie próby ze wszystkimi próbami logowania i wszystkimi adresami IP, aby obliczyć, kiedy i jaki adres IP musisz zablokować. Polecam korzystanie z Transient API. Poważnie. To najłatwiejszy sposób. Oczywiście nie możesz tego kontrolować, ale używanie go pozwala zrobić coś bez znajomości SQL.
- Oblicz czas między nieudanymi próbami logowania dla konkretnego adresu IP.
- Miej 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 googlować 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 wszystkich porad udzielają osoby, które nawet nie wiedzą, jak dokładnie działa algorytm uwierzytelniania WordPress, w tym ci mili faceci 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 opcji, aby zrobić to dobrze bez umiejętności kodowania PHP i znajomości mechanizmu uwierzytelniania WordPress.