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


Obrazek - włamanie zabezpieczenia oszustwo hacker - getpaid20.pl

Doświadczeni mentorzy, zamknięta społeczność i ponad 152 poradniki w jednym miejscu!
--> Dołącz i zacznij zarabiać przez internet! <--


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.

 

Obrazek - info - getpaid20.pl

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:

 

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)

 

 

Obrazek - podsumowanie - getpaid20.pl

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: https://www.youtube.com/embed/aEw-SAK-PfI


Kompleksowy Mentoring Bezpieczeństwa i Anonimowości

Obrazek - mentoring bezpieczeństwa i anonimowości harry okładka - getpaid20.pl

ANONIMOWOŚĆ – KRYPTOWALUTY – ZABEZPIECZENIA – DARKNET – UKRYWANIE ZAPLECZA

Autor: Harry

Dołącz do mentoringu!


Pozdrawiam
Harry

O autorze

Harry

Harry
Harry od kiedy pamięta interesuje się tematyką zabezpieczeń i maskowania tożsamości w internecie. Z jego pomocą dowiesz się jak prowadzić anonimową aktywność online, ukrywać zaplecze, korzystać z dobrodziejstw kryptowalut, usuwać ślady – a także skutecznie zabezpieczyć swoje komputery oraz urządzenia mobilne przed nieuprawnionym dostępem. Harry udostępnia absolutnie wszystko co wie o zabezpieczeniach, darknecie, kryptowalutach i tematykach pokrewnych. Profesjonalna wiedza przedstawiona w zrozumiałej formie, gotowa do wdrożenia.

Dołącz do mentoringu Get Paid 2.0 i zacznij zarabiać w internecie!
Partner Mentoringu Get Paid 2.0 - Mylead.Global   Partner Mentoringu Get Paid 2.0 - Eforsa   Partner Mentoringu Get Paid 2.0 - Hotpay

Komentarze (2)

  1. MichałMichał

    Niby człowiek wiedział, a jednak się nie zabezpieczał. Dzięki za ten wpis, moje wszystkie stronki na WP już zedytowane!

    1. HarryHarry (Get Paid 2.0)

      Cześć Michał!

      Bardzo dobra wiadomość 🙂

      Pozdrawiam

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *