Security Blog
Security Blog

Ograniczyć próby logowania bez wtyczki?

How to protect WordPress login page without using a plugin


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:

  1. Znaj dobrze PHP .
  2. 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”.
  3. Śledź formularz logowania po wpisie, żądania autoryzacji XML RPC i REST API i tak, nie zapomnij o plikach cookie autoryzacji (czy są ważne?).
  4. 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.
  5. Oblicz czas pomiędzy nieudanymi próbami logowania dla danego adresu IP.
  6. 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.

Jeśli na Twojej stronie pojawi się coś dziwnego, do kogo zadzwonisz?


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.