← Wszystkie testy
BezpieczeństwoTypowa waga: Wysoki

Skaner odsłoniętych logów

Szuka plików logów dostępnych przez HTTP, które ujawniają ścieżki, ślady błędów i dane wewnętrzne.

Co sprawdza

Ten skaner szuka plików logów dostępnych przez HTTP na twojej stronie, takich jak dzienniki błędów lub aktywności serwera. Wykrywa, gdy te pliki zostały pozostawione do pobrania, zamiast być chronione.

Dlaczego to ważne

Logi często zawierają wewnętrzne ścieżki systemu, szczegółowe ślady błędów, a czasem dane użytkowników lub parametry żądań. Wszystko to daje atakującemu mapę tego, jak twoja strona działa od środka i którędy próbować się dostać.

Jak to naprawić

Przenieś pliki logów poza katalog publiczny albo zablokuj do nich dostęp z poziomu serwera WWW. Sprawdź też, czy twoja aplikacja nie zapisuje logów w folderze serwowanym przez HTTP, i ogranicz szczegółowość błędów pokazywanych na produkcji.

Jak działa ta kontrola

Scanaris żąda siedmiu ścieżek, pod którymi najpopularniejsze aplikacje zapisują logi, gdy nikt nie każe im inaczej: /debug.log, /error.log, /error_log, /laravel.log, /storage/logs/laravel.log, /npm-debug.log i /wp-content/debug.log. Jeśli któraś odpowiada plikiem tekstowym wyglądającym jak log, a nie ogólną stroną Twojej witryny, otwiera ustalenie o średniej wadze ze ścieżką. Logi rzadko zawierają całą bazę danych, stąd brak wagi krytycznej; ale niewiele plików mówi tak dużo o wewnętrznym działaniu Twojej strony.

Dlaczego to ważne

Log błędów to dziennik wszystkiego, co się nie udało: wewnętrzne ścieżki serwera, nazwy plików i funkcji, dokładne wersje bibliotek, nieudane zapytania do bazy z parametrami, adresy IP użytkowników, czasem e-maile lub tokeny, które pojawiły się w żądaniu. Z tym ktoś szukający podatności wie dokładnie, gdzie patrzeć i którą wersję atakować. A log rośnie: każdy dzień ekspozycji mówi więcej.

Dlaczego tak się dzieje

WordPress z włączonym WP_DEBUG_LOG zapisuje do wp-content/debug.log, a to katalog publiczny; to najczęstszy przypadek. Laravel trzyma logi w storage/logs, który nie powinien być dostępny, ale jest, gdy serwer wskazuje na root projektu zamiast na public/. Apache na hostingu współdzielonym zostawia error_log obok plików strony. A npm-debug.log pojawia się, gdy instalacja na serwerze się nie powiodła i nikt nie posprzątał.

Jak to naprawić

  • WordPress: na produkcji define('WP_DEBUG', false); w wp-config.php. Jeśli tymczasowo potrzebujesz logu, przenieś go poza katalog publiczny przez define('WP_DEBUG_LOG', '/prywatna/sciezka/debug.log'); i usuń obecny plik.
  • Laravel: serwer WWW musi wskazywać na katalog public/ projektu, nigdy na root. Wtedy storage/ przestaje być osiągalny. I APP_DEBUG=false.
  • Node i inne: zapisuj logi poza serwowanym katalogiem i jeśli to możliwe, wysyłaj je do usługi logowania. Usuń z serwera npm-debug.log i podobne.
  • Zablokuj rozszerzenie po stronie serwera jako drugą barierę. W nginx: location ~* \.log$ { deny all; }. W Apache: <FilesMatch "\.log$"> Require all denied </FilesMatch>.
  • Ogranicz to, co logujesz na produkcji: poziom error zamiast debug, bez zrzucania pełnych treści żądań ani tokenów.

Sprawdź, czy naprawione

for p in debug.log error.log error_log laravel.log storage/logs/laravel.log npm-debug.log wp-content/debug.log; do
  printf "%-28s " "$p"; curl -s -o /dev/null -w "%{http_code}\n" "https://twojadomena.pl/$p"
done

Oczekiwane: 404 lub 403 wszędzie. Jeśli Twoja strona to aplikacja jednostronicowa i odpowiada 200 swoim HTML, to nie jest log; otwórz go, żeby potwierdzić.

Często zadawane pytania

Mój log nie zawiera nic wrażliwego, tylko ostrzeżenia PHP.

Te ostrzeżenia zawierają pełne ścieżki serwera i wersje wtyczek, czyli dokładnie to, czego atakujący używa, żeby wybrać, który exploit wypróbować. A dziś nie ma nic wrażliwego; jutro, z nowym błędem, może być.

Czy mam całkowicie wyłączyć logi?

Nie. Mają tylko nie być publiczne. Loguj, co chcesz, do katalogu, którego serwer WWW nie serwuje, albo do zewnętrznej usługi.

Czy to mnie dotyczy na Vercel lub Netlify?

Prawie nigdy: tam logi nie są zapisywane do publicznych plików, ogląda się je w panelu. Ustalenie pojawia się głównie na serwerach własnych, WordPressie i hostingu współdzielonym.

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

Powiązane testy