Envato Elements - pobierasz co chcesz, ile chcesz

WordPress jak każdy popularny system narażony jest na ataki. Część ataków opiera się na lukach czy to w samym WordPressie (relatywnie rzadko), część we wtyczkach i motywach, w których znaleziono jakąś podatność. Ale pewnie największa część ataków – nie licząc SPAMu w komentarzach, który zapewne dominuje – dotyczy bezpośredniego logowania do panelu zarządzania stroną, po uprzednim odkryciu loginu i hasła, co często nie jest specjalnie trudno (admin:admin ;-)).

WordPress i enumeracja nazw użytkowników

Jeszcze do niedawna każdy nowy WordPress miał użytkownika „admin”, który był tworzony automatycznie podczas wstępnej konfiguracji strony, i którego nazwy „zwykłymi metodami” nie dało się zmienić. Oczywiście można (było) np. stworzyć nowego użytkownika i skasować „admina”, ale nie każdy wie, że taką operację warto wykonać.

Od jakiegoś czasu jest inaczej, bo już podczas wstępnej konfiguracji WordPressa podajemy również nazwę użytkownika:

Oczywiście nikt nikomu nie zabroni wpisać tam „admin”, ale – z tego co widzę choćby po stronach, które trafiają pod moją opiekę – nie jest to raczej specjalnie popularne.

Wybranie innej nazwy użytkownika jednak tylko pozornie rozwiązuje problem, bo bardzo często użytkownicy zostawiają jako nazwę wyświetlaną (np. autor strony lub artykułu) nazwę użytkownika. Zdecydowanie warto dokonać zmiany, tak by nazwa wyświetlana („przedstawiaj mnie jaki”) była inna, niż nazwa użytkownika:

Ale to nadal nie zamyka sprawy, bo nic nie stoi na przeszkodzie by za pomocą odpowiedniego linku ustalić jakie nazwy użytkowników (loginy) występują w WordPressie:

https://webinsider.pl/?author=1
https://webinsider.pl/?author=2
https://webinsider.pl/?author=3
...
https://webinsider.pl/?author=n+1

Każde takie zapytanie – w standardowej konfiguracji WordPressa – przeniesie na stronę, która w adresie (URL) będzie zawierała nazwę użytkownika:

https://webinsider.pl/author/[nazwa-użytkownika]/

W internecie jest sporo skryptów (PHP) oraz wtyczek pozwalających zablokować taką enumerację, ale nie dość, że jest to rozwiązanie, które przy złym wdrożeniu może narobić problemów, to jeszcze nie zawsze skuteczne, bo jest jeszcze choćby REST API. Do tego w wielu motywach link przypisany do nazwy autora również potrafi zdradzić nazwę użytkownika.

Ja osobiście preferuję zmianę pseudonimu. Niestety, zmiana pseudonimu w ustawieniach profilu użytkownika nie wystarczy, bo w bazie danych nie zmienia to zawartości pola, które nas interesuje. A wydawałoby się, że powinna…

Edycję bazy danych można przeprowadzić na wiele sposobów, choćby za pomocą phpMyAdmin, który dostępny jest w większości usług hostingu współdzielonego, czyli chyba najpopularniejszej formy hostowania swojej strony, zwłaszcza przez mniej zaawansowanych użytkowników (są nawet skrypty, które potrafią zautomatyzować proces instalacji WordPressa).

Po zalogowaniu się do phpMyAdmin wybieramy bazę danych z której korzysta WordPress (można ew. to sprawdzić w pliku wp-config.php) i przechodzimy do tabeli „wp_users”, z której następnie wybieramy użytkownika, którego chcemy zmodyfikować (opcja: edytuj):

Można tu też od razu dokonać zmiany nazwy użytkownika (z panelu zarządzania normalnie się nie da). Nas jednak w tym przypadku bardziej interesuje pole oznaczone „user_nickname”, z którego wartość jest pobierana do adresu URL przypisanego do użytkownika. Cel jest jeden – wartość w tym polu powinna być inna, niż w polu „user_login” (nazwa użytkownika wykorzystywana do logowania).

Możecie też skorzystać z polecenia SQL, które wystarczy wykonać na wybranej bazie:

UPDATE `wp_users` SET `user_nicename` = 'patryk' WHERE `wp_users`.`ID` = 1;

Choć wymaga to już znajomości ID użytkownika, bo gdy mamy więcej niż jednego, to nie będzie to 1…

Moim zdaniem jest to dużo lepsze rozwiązanie niż blokada enumeracji, choć oczywiście nic nie stoi na przeszkodzie, by połączyć te dwie metody.

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Młody Szymon dzięki motywowi Divi od Elegant Themes zrobił stronę dla firmy ojca
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Monika ćwiczy przed kongresem ko..., ale zapisała się do Newslettera WebInsider.pl, choć... i tak nic nie widzi