Publiczne mapy źródeł JavaScript
Mapy źródeł opublikowane obok paczek. Oddają niezminifikowany kod razem z komentarzami.
Współczesny frontend serwuje zminifikowane paczki, a narzędzie budujące może zapisać obok każdej plik .map. Mapa źródeł łączy każdą linię paczki z oryginalnymi plikami i zwykle zawiera ich pełną treść — z komentarzami, wewnętrznymi ścieżkami i całą resztą. Narzędzia deweloperskie przeglądarki wczytują ją, żeby debugowanie było czytelne, ale ten sam plik może pobrać każdy, kto o niego poprosi.
Samo publikowanie map nie jest podatnością: cały JavaScript i tak trafia do przeglądarki. Ryzyko tkwi w tym, co zdradza kod źródłowy — ukryte ścieżki panelu administracyjnego, flagi funkcji, adresy API, komentarze programistów, czasem klucz, który powinien był zostać na serwerze. Dlatego wiersz jest ostrzeżeniem, a nie błędem.
Jak sprawdza SiteScan
Skaner bierze pierwszy skrypt, który strony ładują z samej witryny, i odpytuje ten sam adres z dopisanym .map. Mapa liczy się jako opublikowana tylko wtedy, gdy odpowiedź 200 zawiera prawdziwą mapę źródeł: JSON z "version": 3 i listą "sources". Wiersz podaje wtedy znaleziony plik.
Jak to naprawić
Wyłącz generowanie map dla produkcji (build.sourcemap: false w Vite, devtool: false w webpacku) albo generuj mapy „ukryte” i wysyłaj je do systemu śledzenia błędów, nie wdrażając ich na serwer. Można też zablokować *.map na serwerze. Powiązane: skrypty zewnętrzne.
Sprawdź ten element na swojej stronie
Uruchom bezpłatny skan: raport pokaże ten wiersz dla Twojej domeny razem z pozostałymi kontrolami audytu.
Więcej w sekcji „Odsłonięte pliki”
Co sprawdza SiteScan
Certyfikat TLS
- Ważność certyfikatu SSL/TLS
- Przestarzałe wersje TLS (1.0 i 1.1)
- Łańcuch certyfikatów TLS
- Wystawca certyfikatu TLS
- Algorytm podpisu certyfikatu
Rejestracja domeny
- Termin rejestracji domeny
- Zarejestrowana nazwa domeny
- Rejestrator domeny
- Data rejestracji domeny
- Data ostatniej zmiany domeny
- Statusy domeny w rejestrze (EPP)
- Blokada transferu domeny
- Kontakt abuse rejestratora
- Źródło danych RDAP i WHOIS
Indeksowanie
- Plik robots.txt
- CSS i JS zablokowane w robots.txt
- Mapa witryny XML (sitemap.xml)
- Indeks map witryny
- Obce adresy w mapie witryny
- Daty lastmod w mapie witryny
- Niedziałające adresy w mapie witryny
- Kanał RSS i Atom
Adresy i przekierowania
- Przekierowanie z HTTP na HTTPS
- Przekierowanie www i bez www
- Długość łańcucha przekierowań
- Obsługa błędu 404 i miękki 404
Nagłówki bezpieczeństwa
- Nagłówki bezpieczeństwa HTTP i ocena
- Nagłówek Strict-Transport-Security (HSTS)
- Nagłówek Content-Security-Policy (CSP)
- X-Content-Type-Options: nosniff
- X-Frame-Options i ochrona przed clickjackingiem
- Nagłówek Referrer-Policy
- Nagłówek Permissions-Policy
- Lista HSTS preload
- CORS i odczyt cross-origin
- Metoda HTTP TRACE
Dostarczanie i reputacja
- Nagłówek Cache-Control dla HTML
- Rewalidacja przez ETag i Last-Modified
- Obsługa HTTP/3 i QUIC
- Wersje oprogramowania w nagłówkach serwera
- Sprawdzenie list blokujących DNS (DNSBL)
Linki wewnętrzne
Odsłonięte pliki
- Odsłonięte pliki .env, .git i kopie
- Listowanie katalogów na serwerze
- Publiczne mapy źródeł JavaScript
- Odsłonięte punkty końcowe WordPressa
Pliki służbowe
- Plik security.txt
- Plik llms.txt dla asystentów AI
- Plik llms-full.txt
- Plik ads.txt dla reklam
- Plik humans.txt
- Adres /.well-known/change-password
DNS i poczta
- Rekordy MX (serwery poczty)
- Rekord SPF
- Rekord i polityka DMARC
- Podpisywanie strefy DNSSEC
- Rekord CAA
- Redundancja serwerów nazw
- Obsługa IPv6 (rekord AAAA)
- Polityka MTA-STS
- Rekord raportowania TLS-RPT
- Rekord BIMI (logo w poczcie)
- Rekord wildcard w DNS
- Wiszący CNAME i przejęcie subdomeny
Prywatność i zgoda
- Skrypty analityczne i śledzące
- Baner zgody na cookies
- Polityka prywatności
- Regulamin serwisu
- Dane wydawcy (Impressum)
- Deklaracja dostępności
Core Web Vitals
- Wynik wydajności Lighthouse
- Largest Contentful Paint (LCP)
- Cumulative Layout Shift (CLS)
- Interaction to Next Paint (INP)
- Dane terenowe CrUX a dane laboratoryjne