Skocz do zawartości
  • Zarejestruj się za darmo i naucz się zarabiać online!

    • Dostęp do darmowych poradników pokazujących krok po kroku jak zarabiać w Internecie
    • Sposoby zarabiania niepublikowane nigdzie indziej
    • Aktywna społeczność, która pomoże Ci rozwiązać problemy i doradzi
    • Profesjonalne treści na temat SEO, social media, afiliacji, kryptowalut, sztucznej inteligencji i wiele więcej!

WordPress: Jak wyłączyć anonimowy dostęp do REST API oraz zablokować enumerację użytkownik


Harry

148 wyświetleń

Każda nowa wersja systemu zarządzania treścią (CMS) WordPress wprowadza udoskonalenia platformy pod względem bezpieczeństwa przechowywania oraz dostępu do wrażliwych danych użytkowników. Funkcja Rest API została dodana w wersji 4.7 wordpress’a i jest przydatnym narzędziem dla programistów. Niestety przy okazji, całkiem anonimowo, umożliwia osobom z zewnątrz sprawdzenie ID (numer identyfikacyjny) użytkowników oraz każdego zarejestrowanego loginu, a nawet sumy kontrolnej gravatarów! Osoby niepożądane mogą wyświetlić także posty, strony czy media osadzone wewnątrz systemu. By poznać te wartości, wystarczy w pasku adresu dopisać ściężkę dostępową, np. getpaid20.pl/wp-json/wp/v2/users (tutaj jest zablokowane oczywiście – ale przejrzyjcie inne strony na WP, zwłaszcza starsze:)).

W tym wpisie przedstawiam jak pozbyć się tej luki, czyli jak wyłączyć anonimowy dostęp do REST API oraz zablokować enumerację użytkowników. Nie jestem fanem wtyczek-zapychaczy, w takim razie jeżeli mogę zrobić coś z pominięciem pluginu – robię to. Tak też zrobiłem w tym przypadku. Zapraszam do lektury i zachęcam do wdrożenia tych zabezpieczeń na swoich stronach.

Wyłączamy anonimowy dostęp do REST API – wordpress

UWAGA: Jeżeli potrzebujesz włączone API, to oczywiście tego nie rób, nie wyłączaj. Jeśli jednak nie miałeś/aś nawet pojęcia co to jest – najlepiej wyłączyć. Zdecydowana większość osób nie używa REST API i w celu zabezpieczenia swojego wordpress’a, zalecam wyłączenie.

W tym celu:

  • Instalujemy wtyczkę My Custom Functions
    • Plugin: My Custom Functions
    • Opis: Łatwe i bezpieczne dodawanie niestandardowego kodu PHP bez ingerencji w plik functions.php
    • Link: https://wordpress.org/plugins/my-custom-functions
    • Moja opinia: MUST HAVE! Mam ten plugin na absolutnie każdej swojej stronie!

Są dwie możliwości dostania się od ustawień wtyczki gdzie wprowadzisz zmiany:

  1. Wtyczki -> Zainstalowane wtyczki -> My Cystom Functions -> Settings
  2. Ustawienia -> PHP Inserter

Obojętnie którą z wyżej wymienionych możliwości wybierzemy, w zakładce “Main” wklejamy kod:

add_filter( ‘rest_endpoints’, ‘__return_empty_array’ );

Po wklejeniu powyższego kodu:

  • Po prawej stronie zmieniamy przełącznik na wartość “ON” (tylko wtedy zmiany będą działały!)
  • Zapisujemy zmiany (Save changes)

Jeśli wszystko zrobiłeś/aś tak jak należy, po przejściu pod adres wp-json/wp/v2/users powinna pokazać się taka informacja:

wylaczanie-rest-api.jpg

Blokowanie enumeracji użytkowników

WordPress jest wyposażony w tzw. funkcję enumeracji. To znaczy, że każdy użytkownik w bazie danych ma przypisany numer identyfikacyjny – ID. Domyślnie od 1 (admin) do ∞ (nieskończoność). W takim razie nawet jeśli REST API będzie wyłączone i z jego pomocą nie da rady ustalić listy zarejestrowanych użytkowników, osoby niepożądane mogą użyć skryptu, który po kolei będzie wpisywał kolejne numery do paska adresu (/?author=x, gdzie ‘x‘ to cyferka) – i w ten sposób znajdzie loginy użytkowników na naszej stronie. Dlatego zalecam również zablokowanie enumeracji użytkowników.

W tym celu logujemy się na swój serwer FTP i edytujemy plik .htaccess, który znajduje się w głównym folderze strony (tam gdzie index.php). W tym pliku, bezpośrednio nad </IfModule>, wklejamy poniższy kod:

RewriteCond %{QUERY_STRING} ^author=([0-9]*)
RewriteRule .* https://ADRES-TWOJEJ-STRONY.PL/? [L,R=302]

ADRES-TWOJEJ-STRONY.PL – w tym miejscu wpisujemy domenę swojej strony! Cały kod .htaccess powinien wyglądać następująco:

# BEGIN WordPress

RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{QUERY_STRING} ^author=([0-9]*)
RewriteRule .* https://ADRES-TWOJEJ-STRONY.PL/? [L,R=302]

# END WordPress

Od tej pory gdy ktoś z zewnątrz będzie chciał ustalić loginy zarejestrowanych użytkowników, zostanie automatycznie przekierowany na stronę główną. Dokładniej rzecz biorąc, zostanie przekierowany tam gdzie wskażemy – zamiast https://ADRES-TWOJEJ-STRONY.PL/ można ustawić inny adres do przekierowania. Dowolny 😉

Do edycji .htaccess mogę też polecić wtyczkę Htaccess File Editor – Safely Edit Htaccess File (https://wordpress.org/plugins/wp-htaccess-editor)

  • Testowanie poprawności przed zapisaniem
  • Automatyczne kopie
  • Możliwość wgrania backupu (z poziomu pluginu lub FTP)
  • Wspiera sieć stron WordPress (tzw. WordPress Multisite)

Podsumowanie

Wyłączone REST API oraz zablokowana enumeracja użytkowników skutkuje zwiększeniem bezpieczeństwa swojego wordpress’a. Oczywiście należy też pamiętać o zmianie loginu administratora. Nie można sobie pozwolić na taki rarytas jak login “admin” lub “administrator”, ponieważ to również jest proszenie się o próbę włamania do panelu administracyjnego. Zabezpieczeń wordpress’a jest bardzo dużo i warto się tym interesować. To najpopularniejszy CMS, a więc i najpopularniejszy kąsek dla internetowych przestępców. Więcej o zabezpieczaniu wordpress’a dowiecie się także z mojego podcastu dla Mylead:

Pozdrawiam
Harry

0 komentarzy


Rekomendowane komentarze

Brak komentarzy do wyświetlenia

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Ta strona korzysta z ciasteczek, aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie z witryny oznacza zgodę na ich wykorzystanie. Polityka prywatności .