← Wszystkie testy
BezpieczeństwoTypowa waga: Wysoki

Skaner odsłoniętych paneli

Szuka paneli i endpointów debugowania (Actuator, Telescope, Ignition, phpMyAdmin) dostępnych na produkcji.

Co sprawdza

Ten skaner szuka paneli i endpointów debugowania dostępnych na produkcji, takich jak Actuator, Telescope, Ignition czy phpMyAdmin. Wykrywa, gdy te wewnętrzne narzędzia są osiągalne z internetu.

Dlaczego to ważne

Te panele często ujawniają bardzo cenne informacje wewnętrzne, takie jak konfiguracja, zmienne środowiskowe czy dostęp do bazy danych, przeznaczone tylko do developmentu. Pozostawione otwarte na produkcji dają atakującemu bezpośrednie drzwi do twoich systemów i danych.

Jak to naprawić

Wyłącz te narzędzia debugowania na produkcji albo ogranicz ich dostęp tylko do sieci wewnętrznych lub zaufanych adresów. Sprawdź, czy twoja konfiguracja wdrożenia nie zostawia włączonego trybu debug ani nie wystawia tych paneli publicznie.

Jak działa ta kontrola

Scanaris żąda listy ścieżek odpowiadających panelom i narzędziom debugowania, które nigdy nie powinny odpowiadać na produkcji, i sprawdza, czy odpowiedź jest rzeczywiście odpowiedzią narzędzia, a nie ogólną stroną Twojej witryny. Ścieżki i ich waga: /actuator/health ze Spring Boot (wysoka), /actuator/env i /actuator/heapdump (krytyczne: zmienne środowiskowe i zrzut pamięci), /telescope/requests z Laravel Telescope (wysoka), /_ignition/health-check z Laravel Ignition w trybie debug (krytyczna, bo podatne wersje pozwalały wykonać kod), /_profiler z Symfony (wysoka), /.vscode/sftp.json z danymi logowania do wdrożeń (krytyczna), /server-status Apache (średnia) i /phpmyadmin/ (wysoka).

Dlaczego to ważne

Te narzędzia istnieją po to, by pokazać wnętrze aplikacji temu, kto ją tworzy: konfigurację, zmienne środowiskowe z hasłami, ostatnie żądania z parametrami, pełne ślady błędów, zawartość pamięci procesu. W fazie rozwoju są cenne; na produkcji, otwarte w internecie, to drzwi z kluczem w zamku. Dostępny /actuator/env często zawiera ciąg połączenia z bazą danych. Publiczny phpMyAdmin to punkt wejścia do testowania haseł do Twojej bazy przez 24 godziny na dobę.

Dlaczego tak się dzieje

Bo ta sama konfiguracja służy do rozwoju i produkcji. Tryb debug Laravela (APP_DEBUG=true), endpointy Actuatora wystawione domyślnie w starych wersjach Springa, profiler Symfony z APP_ENV=dev, phpMyAdmin zainstalowany „żeby na chwilę zajrzeć do bazy" i nigdy nieusunięty. Narzędzia AI generujące projekt rzadko rozróżniają środowiska, a wdrożenie dziedziczy konfigurację deweloperską.

Jak to naprawić

  • Laravel: APP_DEBUG=false i APP_ENV=production w produkcyjnym .env. Telescope tylko lokalnie (TELESCOPE_ENABLED=false lub gate autoryzacji). Zaktualizuj Ignition do wersji bez podatności.
  • Spring Boot: najwyżej management.endpoints.web.exposure.include=health, bez env i heapdump, i z zabezpieczeniem przed /actuator. Jeszcze lepiej wystaw actuator na osobnym porcie zarządzania, który nie wychodzi do internetu.
  • Symfony: APP_ENV=prod i APP_DEBUG=0; profiler rejestruje się tylko w dev.
  • phpMyAdmin: odinstaluj go z publicznego serwera. Jeśli go potrzebujesz, korzystaj przez tunel SSH albo ogranicz po IP z dodatkowym uwierzytelnianiem.
  • Apache server-status: Require ip 127.0.0.1 w dyrektywie Location /server-status albo wyłącz moduł.
  • Pliki edytora jak .vscode/sftp.json: nigdy nie mogą trafić do wdrożenia. Dodaj .vscode/ do .gitignore, a jeśli plik został opublikowany, zmień hasło, które zawiera.

Sprawdź, czy naprawione

for p in actuator/health actuator/env telescope/requests _ignition/health-check _profiler .vscode/sftp.json server-status phpmyadmin/; do
  printf "%-26s " "$p"; curl -s -o /dev/null -w "%{http_code}\n" "https://twojadomena.pl/$p"
done

Oczekiwane: 404, 403 lub 401 wszędzie. 200 jest akceptowalne tylko wtedy, gdy zwracana jest Twoja ogólna strona, a nie narzędzie.

Często zadawane pytania

Mój panel prosi o hasło. Czy to nadal ustalenie?

Scanaris sprawdza zawartość, więc panel chroniony uwierzytelnianiem, który zwraca 401, nie jest zgłaszany. Mimo to phpMyAdmin z logowaniem to cel ataków siłowych; lepiej poza internetem.

A /actuator/health? Mówi tylko „UP".

Potwierdza technologię i wersję Springa, której używasz, i zwykle wskazuje, że pozostałe endpointy też są wystawione. Jeśli potrzebujesz publicznego health checka dla load balancera, stwórz własną minimalną ścieżkę zamiast otwierać actuator.

Używam Next.js lub Nuxt. Czy to mnie dotyczy?

Te konkretne ścieżki nie, ale zasada tak: ścieżki API do debugowania lub seedowania (/api/debug, /api/seed), które AI tworzy do testów, muszą zniknąć przed wdrożeniem.

Sprawdź to na swojej stronie

Przeskanuj swoją stronę za darmo i zobacz, czy ten i 44 inne testy przechodzą, z promptem naprawczym dla każdego problemu.

Przeskanuj moją stronę za darmo

Z bloga

Powiązane testy