Jeden skan jednej strony, od zlecenia do subtaska.
Ten przewodnik prowadzi przez jeden przebieg na jednej stronie i nazywa wszystko po drodze: która sonda mierzy który parametr, jaki plik ją wykonuje, co zostaje w zapisie i co z tego trafia do zadania w systemie zleceń. Przykładem jest strona demonstracyjna sklep-demo.pl.
Strona podaje nazwy plików i modułów — to karta techniczna, nie opis procesu. Sam obieg opisuje Pętla doskonaląca, architekturę — Skaner, a pojedyncze pomiary — karty parametrów. Stan odczytany z kodu 22.09.2026.
- Kroków przebiegu
- 10od zlecenia do zapisu
- Sond skanera
- 12z kartą 10
- Parametrów
- 50mierzonych 44
- Helperów w skanie
- 27bezpieczeństwo i wspólne
Odczyt jest niezmienny — nie nadpisujemy go nigdy, bo powtórka reguły na zapisanych pomiarach potrzebuje oryginału. Werdykt niesie wersję reguł, które go wydały; ocena liczy się wyłącznie z usterek potwierdzonych, nie z tych w okresie łaski.
| Nr | Krok | Plik | Co się dzieje | Co zostaje |
|---|---|---|---|---|
| 01 | Wejście: kto zleca skan | skaner/cli_strona.py · skaner/api.py · skaner/harmonogram (kohorty.toml) | Skrót „Skan strony”, panel albo harmonogram wołają jedno wejście: skanuj(domena, sondy, kto). Zlecenie dostaje pole zrodlo — harmonogram albo ręczne. | wiersz w tabeli `zlecenia` (stan: nowe) i pozycje strona × sonda w kolejce |
| 02 | Kolejka: pobranie zlecenia | skaner/kolejka.py · skaner/worker.py::petla | Worker zagląda do kolejki co 5 s ([worker] odpytuj_s), bierze jedno zlecenie i przestawia je na w_toku. Dwa zlecenia naraz (rownolegle_zlecenia = 2), żeby skan bezpieczeństwa nie blokował dostępności. | zlecenie w stanie `w_toku` z sygnaturą czasu i pulsem workera |
| 03 | Grupowanie pozycji po sondzie | skaner/worker.py::wykonaj (L213–216) | Pozycje zlecenia lądują w słowniku „sonda → lista stron”. Jedna sonda = jedno uruchomienie helpera na paczce stron, nie na każdej z osobna. | nic trwałego — układ pracy na czas przebiegu |
| 04 | Rozstrzygnięcie trasy: karta czy moduł | skaner/worker.py (L217–230) · skaner/limity.toml | Wpis [bez_karty.<sonda>] wygrywa z kartą. Sonda bez karty i bez wpisu jest pomijana, a zlecenie dostaje uwagę i kończy się stanem blad. | uwaga w dzienniku zlecenia, gdy sonda nie ma żadnej trasy |
| 05 | Izolacja i limity usług zewnętrznych | skaner/worker.py::srodowisko, uwzglednij_limity · skaner/limity.toml | Z procesu helpera znikają zmienne z danymi dostępowymi (CLICKUP, LAB247, SMTP, N8N, MAIL…), stan idzie do katalogu cienia, a licznik na dobę pilnuje Safe Browsing (3000) i WPScan. Po limicie sonda rusza bez usługi, z jawnym wpisem. | wiersz w `limity_zuzycie` i ewentualny wpis „usługa pominięta: limit” |
| 06 | Pomiar sondą z kartą | skaner/adapter.py::wykonaj_karte · sondy/<id>/karta.toml | Wejście przycięte do pól z karty → walidacja (bledy_wejscia) → helper → walidacja wyjścia wobec schematu karty. Wynik niezgodny z kartą to awaria sondy, nie wynik strony. | odczyt z `wersja_sondy` = numer z karty, czas trwania, dowody |
| 07 | Pomiar sondą bez karty | skaner/worker.py::uruchom_bez_karty · skaner/importuj.py | Helper uruchamiany dokładnie jak na produkcji, z CREATO_PING_ODCZYTY_DIR wskazującym katalog tymczasowy zlecenia. Jego plik JSONL worker importuje do bazy pod swoim zleceniem — ten sam kształt odczytu co w imporcie produkcji. | odczyt z `wersja_sondy` = `helper:<sha>` (bez numeru wersji, bo bez karty) |
| 08 | Klasyfikacja: odczyt → werdykt | skaner/klasyfikacja.py · config/incident_policy.toml | Czysta funkcja bez skutków ubocznych: ten sam odczyt i te same reguły dają ten sam werdykt. Przy każdym werdykcie zapisywana jest wersja_regul — bez niej nie da się powtórzyć ani porównać. | werdykt na parę (odczyt, typ ustalenia) ze skutkiem i wersją reguł |
| 09 | Akcje i zapis w cieniu | skaner/akcje.py · skaner/cien_clickup.py | „Co bym zrobił” liczone z reguł akcji, a adapter ClickUp w cieniu buduje plan zapisu na najświeższej migawce listy Strony. Nic nie jest wysyłane; błąd cienia nie psuje zlecenia. | plan w `zapisy_cienia` — materiał do porównania z tym, co zapisał writer |
| 10 | Produkcja: zapis do ClickUp i odczyty do LAB247 | skaner/produkcja.py::zapisz · skaner/adapter_clickup.py | Tylko dla zleceń o źródle harmonogram (worker.py:210) i tylko w trybie produkcji. Zapis do ClickUp przepuszcza wyłącznie jawne SKANER_CLICKUP_ZAPIS=tak — bez tego odczyty idą do LAB247, a zapis jest nagrywany. | wiersz w `zapisy_produkcji` (action_log, errors, transitions) + koperta odczytów dla LAB247 |
- ok
- ok pomiar się udał i wynik jest dobry
- fail
- fail pomiar się udał, a wynik jest zły — to otwiera ustalenie
- timeout
- timeout pomiar się nie udał w limicie czasu; nie znaczy „strona nie działa”
- awaria sondy
- awaria sondy wyjście niezgodne z kartą — problem nasz, nie strony; osobna kolejka do naprawy
Krok 10 rozstrzyga się na jednym warunku: zlecenie ręczne (skrót „Skan strony”, panel, wiersz poleceń) nigdy nie idzie do systemu zleceń — zostaje podglądem. Do zapisu kwalifikuje się wyłącznie zlecenie o źródle „harmonogram”.
| Sonda | Wersja | Helper | Co mierzy · parametry | Limit | Paczka |
|---|---|---|---|---|---|
| tcp | 1.1.0 | helpers/tcp_check.py | Czy serwer przyjmuje połączenie TCP na porcie (domyślnie 443)tcp | 2,0 s | 50 |
| dns | 1.0.0 | helpers/dns_check.py | Czy domena rozwiązuje się na rekord A i czy znany adres jest wśród odpowiedzidns | 2,0 s | 50 |
| http | 1.0.0 | helpers/http_check.py | Kod odpowiedzi GET po przekierowaniach (najwyżej 5)http-status | 5,0 s | 50 |
| content | 1.0.0 | helpers/content_check.py | Czy strona zawiera oczekiwany fragment tekstu (dokładny podciąg, wielkość liter ma znaczenie)content | 5,0 s | 50 |
| redirect | 1.0.0 | helpers/redirect_check.py | Czy http:// przekierowuje na https:// i ile przeskoków ma łańcuchhttp-https-redirect · redirect-chain | 7,0 s | 50 |
| www_redirect | 1.0.0 | helpers/www_redirect.py | Czy obie formy adresu kończą na jednym hoście, a nie są dwiema wersjami stronywww-redirect | 7,0 s | 50 |
| ttfb | 1.0.0 | helpers/ttfb_check.py | Czas do odpowiedzi z histerezą: porażka dopiero po serii wolnych odczytówttfb | 10,0 s | 50 |
| ssl | 1.1.0 | helpers/ssl_check.py | Certyfikat TLS na 443: data wygaśnięcia i zgodność nazwy domeny z SAN (zapas: CN)ssl-valid · ssl-days | 4,0 s | 50 |
| partial_availability | 1.0.0 | helpers/partial_availability_check.py | Czy działa tylko jedna z form adresu, albo obie wyłącznie z pominięciem weryfikacji certyfikatussl-valid | 15,0 s | 50 |
| exposure | 1.1.0 | helpers/exposure_check.py | Czy strona wystawia publicznie pliki i punkty wejścia ułatwiające atak (25 ścieżek)env-exposure · sensitive-files · htaccess-bak · xmlrpc · user-enum · git-exposure · readme · wp-cron · backup-exposure · sql-dump-exposure · dev-manifest · ds-store | 15,0 s | 4 |
Karta to plik sondy/<id>/karta.toml. Test helpers/tests/test_karty_sond.py wykonuje jej przypadki bez sieci i pada, gdy karta rozjedzie się z kodem: brak przypadku zapalającego, wynik spoza schematu, limit inny niż w konfiguracji, helper, którego nie ma.
| Sonda | Moduł | Paczka | Limit | Usługi zewnętrzne | Uwaga |
|---|---|---|---|---|---|
| dns | helpers.dns_check | 50 | 180 s | — | Ma też kartę, ale wpis w limitach wygrywa. |
| http | helpers.http_check | 50 | 180 s | — | Jak wyżej. |
| content | helpers.content_check | 50 | 180 s | — | Jak wyżej. |
| redirect | helpers.redirect_check | 50 | 180 s | — | Jak wyżej. |
| www_redirect | helpers.www_redirect | 50 | 180 s | — | Jak wyżej. |
| ttfb | helpers.ttfb_check | 50 | 180 s | — | Jak wyżej. |
| partial_availability | helpers.partial_availability_check | 50 | 180 s | — | Jak wyżej. |
| security_pelny | helpers.security_runner --level p3 | 16 | 1800 s | safebrowsing, wpscan | Jeden proces, trzynaście sposobów sprawdzenia (TAB. 4). Paczka 16 stron — tyle samo, co przebieg bezpieczeństwa w n8n. |
| security_p4 | helpers.security_runner --level p4 | 16 | 900 s | safebrowsing | Szybki przebieg: tylko infekcja i Safe Browsing — ewidentne przejęcie widoczne z zewnątrz. |
Siedem sond dostępności ma jednocześnie kartę i wpis w limitach — wpis wygrywa. Karta opisuje je i testuje, ale nie zmienia sposobu uruchamiania: przejście na trasę karty to świadome usunięcie wpisu, nie efekt uboczny.
| Helper | Co robi | Poziom |
|---|---|---|
| helpers/preflight.py | Odsiewa domeny bez rekordu A i strony w budowie, zanim ruszy jakikolwiek pomiar | P3 i P4 |
| helpers/html_fetch.py | Jedno pobranie HTML współdzielone przez wszystkie sprawdzenia w paczce (BatchHtmlCache) | P3 i P4 |
| helpers/wp_fingerprint.py | Wersja rdzenia WordPressa z nagłówków, znacznika generator i sum kontrolnych | tylko P3 |
| helpers/vuln_match.py | Zestawienie wykrytych wtyczek i motywów z indeksem CVE (feed Wordfence) | tylko P3 |
| helpers/wpscan_lookup.py | Rozstrzygnięcie wątpliwego dopasowania CVE — usługa zewnętrzna z twardym budżetem | tylko P3 |
| helpers/infection_check.py | Złośliwy skrypt, spam SEO, ukryta ramka, cloaking i bramki znanych kampanii | P3 i P4 |
| helpers/safebrowsing.py | Zapytanie do Google Web Risk: czy strona jest oflagowana jako phishing lub malware | P3 i P4 |
| helpers/exposure_check.py | 25 ścieżek: .env, .git, kopie zapasowe, zrzuty bazy, xmlrpc, enumeracja użytkowników | tylko P3 |
| helpers/indexability_check.py | noindex w znaczniku meta albo w nagłówku X-Robots-Tag | tylko P3 |
| helpers/sitemap_check.py | Obecność mapy witryny i absurdalna liczba adresów w niej | tylko P3 |
| helpers/robots_check.py | Dostępność robots.txt i blokada całego serwisu | tylko P3 |
| helpers/security_headers.py | Sześć nagłówków ochronnych: HSTS, X-Frame-Options, nosniff, CSP, Referrer-Policy, Permissions-Policy | tylko P3 |
| helpers/mixed_content.py | Zasoby ładowane po HTTP na stronie HTTPS | tylko P3 |
| helpers/seo_check.py | Canonical, tytuł strony i spójność linków wewnętrznych z HTTPS | tylko P3 |
| helpers/ip_change.py | Porównanie adresu IP ze wzorcem z poprzedniego przebiegu | tylko P3 |
| helpers/dns_integrity_check.py | NS, MX, SPF i DMARC wobec wzorca — wykrywa zniknięcie rekordu | tylko P3 |
| helpers/version_summary.py | Zbiera wersje i podatności w jedno podsumowanie zamiast wpisu na każdą wtyczkę | tylko P3 |
| helpers/wporg_versions.py | Najnowsze wydania wtyczek i motywów z katalogu WordPressa — odniesienie dla wersji na stronie | tylko P3 |
| helpers/incident_policy.py | Bramka: które ustalenie w ogóle idzie dalej (gate), z jakim skutkiem i wagą | P3 i P4 |
Jedno wywołanie helpers/security_runner.py, jedno pobranie HTML na stronę, wiele sprawdzeń. Dlatego w zestawieniu sond widać dwie pozycje, a w zapisie — kilkanaście odczytów z jednego przebiegu. Plików jest 19, a sposobów sprawdzenia trzynaście: pięć pozycji to zaplecze — odsiew domen, wspólne pobranie HTML, bramka polityki, rozstrzyganie wątpliwych CVE i składanie podsumowania wersji.
| Plik | Rola w przebiegu |
|---|---|
| helpers/common.py | Wspólny kształt wyniku, dziennik, wczytanie listy stron, emisja wyników |
| helpers/config.py | Limity czasu per rodzaj sprawdzenia i równoległość paczki — jedno miejsce dla wszystkich sond |
| helpers/odczyty.py | Zapis surowego wejścia i wyjścia każdej sondy do pliku JSONL |
| helpers/dowody.py | Fragment, który zapalił sondę — z maskowaniem wartości wrażliwych |
| helpers/network_block_check.py | Rozróżnia „strona nie działa” od „hosting zablokował nasz adres” |
| helpers/wyjatki_falszywych_alarmow.py | Wąski rejestr wyjątków: znane fałszywe alarmy nie otwierają sprawy |
| helpers/site_params.py | Parametry strony i sprawdzenia krytyczne (okres łaski przed statusem DOWN) |
| helpers/checks_publish.py | Koperta odczytów dostępności wysyłana do bazy LAB247 |
| Pole | Wartość w przykładzie | Po co |
|---|---|---|
| [sonda] id | tcp | Nazwa sondy; musi zgadzać się z nazwą katalogu |
| [sonda] wersja | 1.1.0 | Podbijana przy każdej zmianie logiki helpera — trafia do odczytu |
| [sonda] helper | helpers/tcp_check.py | Plik wykonujący pomiar; czytnik sprawdza, że istnieje |
| [sonda] check_type | tcp | Klucz limitu czasu i klucz w zapisie do ClickUp |
| [sonda] mierzy | Czy serwer przyjmuje połączenie TCP na porcie (domyślnie 443) | Jedno zdanie po polsku — co ta sonda sprawdza |
| [sonda] parametry | ["tcp"] | Identyfikatory parametrów z katalogu LAB247 — spina kartę z kartą parametru |
| [sonda] timeout_s | 2.0 | Limit pomiaru; twardy limit to timeout + 0,5 s |
| [sonda] rownoleglosc | 50 | Ile stron w paczce naraz |
| [logika] ok | Połączenie zestawione przed upływem 2,5 s; gniazdo od razu zamykane | Kiedy wynik jest dobry — słowami, nie kodem |
| [logika] fail | Dowolny wyjątek przy łączeniu (odmowa, brak trasy, błąd DNS) | Kiedy wynik jest zły |
| [logika] timeout | Połączenie nie zestawione w 2,5 s | Kiedy pomiar się nie udał |
| [logika] nota | Sonda nie wysyła danych i nie weryfikuje TLS. Jest krytyczna: 1. porażka = okres łaski, 2. z rzędu = DOWN | Zastrzeżenia zakresu |
| [wejscie] wymagane | ["domain"] | Pola, bez których zlecenie jest błędne |
| [wyjscie] ksztalt | wynik_na_domene | Jeden wynik na stronę albo lista znalezisk |
| [wyjscie] dowod | pelny | pelny · maskowany · tylko_skrot · brak — ile wolno zapisać z treści |
| [wyjscie] statusy | ["ok", "fail", "timeout"] | Zamknięty zbiór stanów |
| [wyjscie] zapalajace | ["fail", "timeout"] | Które stany otwierają ustalenie |
| [[przypadek]] | 3 przypadki: połączenie ok · odmowa · zawieszenie | Testy karty; musi być co najmniej jeden zapalający (kontrola pozytywna) i jeden ok |
Karta sondy opisuje pomiar: co sonda robi z siecią i jaki wynik wolno jej zwrócić. Karta parametru opisuje znaczenie: co ten pomiar znaczy dla właściciela strony. Spina je pole parametry w karcie sondy.
| Pole | Wartość w przykładzie | Po co |
|---|---|---|
| id | tcp | Kotwica w dokumentacji: /wiedza/parametry#tcp |
| area | availability | Obszar: dostępność · bezpieczeństwo · SEO |
| name | Połączenie TCP | Nazwa po polsku, ta sama w panelu i w dokumentacji |
| description | Czy port 80/443 serwera odpowiada na połączenie | Co to znaczy dla właściciela strony |
| importance | 5 | 5 krytyczna · 4 wysoka · 3 średnia · 2 niska |
| icon | D01 | Klucz bitmapy ikony parametru |
| probe | tcp | Sonda, która ten parametr mierzy — spina z kartą sondy |
| helper | tcp_check | Moduł wykonujący pomiar |
| workflows | creato_ping_avail_v2 | Który przebieg go zbiera |
| findings | ["tcp"] | Ustalenia, jakie ten parametr może otworzyć |
| measured | true | Czy ktokolwiek dziś mierzy to na produkcji |
| planned | — | Znacznik parametru bez sondy: opisany, ale niemierzony |
| note | — | Zastrzeżenie zakresu albo luka — widoczne też w dymku ikony |
Źródłem jest data/parameters.ts — jeden plik czytany przez dokumentację, dymek ikony, harmonogram i przegląd strony w panelu. Pełna karta każdego parametru: katalog parametrów.
| Co zlecono | Harmonogram wystawia zlecenie na sklep-demo.pl z zestawem sond dostępności (7) oraz security_pelny. Źródło: harmonogram, więc zapis do ClickUp jest w ogóle brany pod uwagę. |
| Ile pomiarów | Siedem sond dostępności daje 7 odczytów. security_pelny to jeden proces, ale w środku trzynaście sprawdzeń — każde zapisuje własny odczyt przez helpers/odczyty.py. |
| Co wyszło | exposure znajduje dostępne .git/HEAD, seo brak znacznika canonical, a vuln_match nie kończy się w limicie. Reszta na ok. |
| Werdykty | Bramka polityki przepuszcza ekspozycję repozytorium (otwarte drzwi) i brak canonical (higiena). Nieudany pomiar CVE dostaje skutek „nie dało się sprawdzić” — nie jest liczony jako test niezaliczony. |
| Subtask 2 · Pomiar | niezaliczone_testy: 2, nieudane_pomiary: 1, pod kreską dwie pozycje wypisane po jednej. Udane pomiary tylko jako liczba — inaczej lista rośnie o rzeczy bez treści. |
| Subtask 1 · Podsumowanie | Ekspozycja repozytorium ma wagę 4 → pasmo 7–8. Nasilenie nie zaskakuje (jedna usterka wagi dominującej, dwa obszary, zero usterek wagi 3), więc całkowita część to dolny punkt pasma: 7. Rozlanie dokłada 0,1 za drugi obszar — wskaźnik 7,1/10, kolor pomarańczowy. Nieudany pomiar CVE ląduje w sekcji „czego nie zmierzyliśmy” i nie obniża wskaźnika. |
| Co naprawdę zostaje | Odczyty, werdykty, plan cienia i wiersz w zapisy_produkcji — wszystko w bazie skanera. Z tego przebiegu do systemu zleceń nie idzie nic. Subtaski, które widać dziś na liście, pochodzą z ręcznej projekcji i noszą jeszcze stare nazwy. |
| Klucz | Przykład | Skąd się bierze |
|---|---|---|
| niezaliczone_testy | 2 | Werdykty o skutku innym niż „brak problemu”, „bez subtaska” i nieudany pomiar |
| nieudane_pomiary | 1 | Skutki „nie dało się sprawdzić” i „bez oceny” — pomiaru nie było |
| informacyjne | 3 | Pomiar się udał, ale polityka nie robi z tego sprawy |
| udane_pomiary | 14 | Reszta — wyłącznie jako liczba, bez listy pozycji |
| ostatni_skan | 2026-09-22 04:12 | Czas najświeższego odczytu strony |
| skanow | 20 | Ile odczytów złożyło się na ten obraz |
Pod kreską dwie listy: niezaliczone testy i nieudane pomiary, po jednej pozycji na wiersz, bez komentarza. Udane pomiary zostają wyłącznie liczbą. Rozdział „niezaliczony” od „nieudany” robi jedna funkcja, żeby nazwa subtaska nie mówiła czegoś innego niż jego treść.
| Klucz | Przykład | Skąd się bierze |
|---|---|---|
| wskaznik | 7,1/10 | Pasmo z wagi + nasilenie, a po przecinku rozlanie problemu |
| ocena | 7 | Liczba całkowita — kontrakt panelu LAB247 |
| kolor | pomarańczowy | Pasmo oceny → status listy Strony |
| usterka_dominujaca | exposure_git | Typ najcięższej potwierdzonej usterki (waga 4) |
| liczba_usterek | 2 | Tylko potwierdzone; okres łaski się nie liczy |
| usterek_wagi_dominujacej | 1 | Próg nasilenia: ≥ 2 przesuwają ocenę na cięższy punkt pasma |
| obszary | bezpieczeństwo, SEO | Rozlanie: każdy obszar ponad pierwszy dokłada 0,1 |
| pomiar_pelny | tak | „nie” → strona idzie na status „niezbadana” |
Kolejność jest logiczna, nie czasowa: Pomiar to surowe wyniki sond, a Podsumowanie liczy się z potwierdzonych usterek, więc bez pomiaru nie ma wskaźnika. Wagę usterki bierze katalog usterek atomowych: waga najcięższej wybiera pasmo (5 → 9–10, 4 → 7–8, 3 → 5–6, 2 → 3–4, 1 → 2), druga cyfra pochodzi z nasilenia. Bez sumowania — dziesięć drobiazgów to nadal 2/10.
| Warstwa | Kto to robi | Stan na dziś |
|---|---|---|
| Cień po każdym zleceniudziała | skaner/cien_clickup.py | Po każdym zleceniu worker buduje plan „co bym zapisał” na migawce listy Strony i odkłada go w bazie. ClickUp jest wyłącznie czytany. |
| Produkcja z harmonogramunagrywa | skaner/produkcja.py::zapisz | Odczyty dostępności idą do bazy LAB247 naprawdę. Zapis do ClickUp jest wstrzymany decyzją właściciela z 19.09: bez SKANER_CLICKUP_ZAPIS=tak każde wywołanie jest tylko nagrywane w `zapisy_produkcji`. |
| Pięć ponumerowanych subtaskówręcznie | skaner/prezentacja.py + tools/projekcja_clickup.py | Kształt subtasków 1–5 liczy stan_docelowy. Na ścieżce workera go nie ma: wołają go panel LAB247 (wskaźnik strony) i narzędzie projekcji, domyślnie w suchym biegu. Wysyłka dopiero z przełącznikiem --zapisz. |
Dlatego zdanie „skan zapisuje subtaski” jest dziś nieprawdziwe. Skan liczy, co zapisałby, i to odkłada. Wysyłkę odblokuje jawne ustawienie w środowisku usługi — z zasadą „brak zmiennej, literówka, cokolwiek innego = wstrzymane”.
| Obszar | Parametr | Sonda | Helper | Ustalenia, jakie otwiera |
|---|---|---|---|---|
| D | Połączenie TCP | tcp | tcp_check | tcp |
| D | Rozwiązywanie DNS | dns | dns_check | dns |
| D | Kod odpowiedzi HTTP | http | http_check | http |
| D | Weryfikacja treści | content | content_check | content |
| D | Przekierowanie HTTP → HTTPS | redirect | redirect_check | redirect |
| D | Przekierowanie www ↔ bez www | www_redirect | www_redirect | www_redirect, partial_availability |
| D | Długość łańcucha przekierowań | redirect | redirect_check | — |
| D | Próg TTFB | ttfb | ttfb_check | ttfb |
| B | SSL: ważność certyfikatu | partial_availability | partial_availability_check | partial_availability, ssl |
| B | SSL: dni do wygaśnięcia | ssl | ssl_check | ssl_expiry |
| B | Wygaśnięcie domeny | domain_expiry | domain_expiry | domain_expiry |
| B | Google Safe Browsing | safe_browsing | safebrowsing | infection_safe_browsing, safebrowsing_flagged |
| B | Ekspozycja .env | exposure | exposure_check | exposure_env, exposure_scan_unreliable |
| B | Malware / infekcja | infection | infection_check | infection_base64_eval, infection_cloaking, infection_same_origin_loader, infection_socgholish_gateway, infection_etherhiding, infection_seo_spam, infection_foreign_script, infection_hidden_iframe, bot_protection_detected, infection_scan_unknown |
| B | Dopasowanie podatności | vuln_match | vuln_match | vuln_cve, vuln_wp_core, outdated_plugin, outdated_theme |
| B | Wersja WordPressa | wp_fingerprint | wp_fingerprint | wp_fingerprint, outdated_wp |
| B | Ekspozycja plików wrażliwych | exposure | exposure_check | exposure_wpconfig_bak, exposure_wpconfig_tilde, exposure_debug_log, exposure_directory_listing |
| B | Ekspozycja .htaccess.bak | exposure | exposure_check | exposure_htaccess_bak |
| B | Dostępność xmlrpc.php | exposure | exposure_check | exposure_xmlrpc |
| B | REST API: enumeracja użytkowników | exposure | exposure_check | exposure_users_enum, exposure_author_enum |
| B | Ekspozycja .git/HEAD | exposure | exposure_check | exposure_git |
| B | Mixed content | mixed_content | mixed_content | mixed_content |
| B | Nagłówek HSTS | security_headers | security_headers | missing_hsts |
| B | Zmiana adresu IP | ip_change | ip_change | ip_changed |
| B | Dostępność readme.html | exposure | exposure_check | exposure_readme |
| B | Dostępność wp-cron.php | exposure | exposure_check | exposure_wpcron |
| B | X-Frame-Options | security_headers | security_headers | missing_xframe |
| B | X-Content-Type-Options | security_headers | security_headers | missing_nosniff |
| B | Content-Security-Policy | security_headers | security_headers | missing_csp |
| B | Referrer-Policy | security_headers | security_headers | missing_referrer_policy |
| B | Permissions-Policy | security_headers | security_headers | missing_permissions_policy |
| B | Rekord SPF | dns_integrity | dns_integrity_check | dns_spf_missing |
| B | Rekord DMARC | dns_integrity | dns_integrity_check | dns_dmarc_missing |
| B | Zdjęcie SPF/DMARC | dns_integrity | dns_integrity_check | dns_mail_auth_removed |
| B | Ekspozycja kopii zapasowych | exposure | exposure_check | exposure_backup_archive |
| B | Ekspozycja zrzutu bazy | exposure | exposure_check | exposure_sql_dump |
| B | Ekspozycja manifestów dev | exposure | exposure_check | exposure_dev_manifest |
| B | Ekspozycja .DS_Store | exposure | exposure_check | exposure_ds_store |
| B | Rekord DKIM | — | — | — |
| B | Wersja PHP i koniec wsparcia | — | — | — |
| B | Wersja TLS i siła szyfrów | — | — | — |
| B | Skrypty z domen wygasłych | — | — | — |
| S | Indeksowalność | indexability | indexability_check | noindex |
| S | Sitemap.xml | sitemap | sitemap_check | sitemap_absurd_url_count |
| S | Spójność HTTP → HTTPS | seo | seo_check | seo_http_https_mismatch |
| S | Canonical URL | seo | seo_check | seo_canonical_missing |
| S | robots.txt | robots | robots_check | robots_block_all, robots_missing |
| S | Tytuł strony | seo | seo_check | seo_title_missing |
| S | Liczba zaindeksowanych podstron | — | — | — |
| S | Monitoring kluczowych podstron | — | — | — |
- D
- Czy strona żyje, odpowiada i pokazuje właściwą treść.
- B
- Certyfikaty, infekcje, wystawione pliki, podatności, nagłówki.
- S
- Czy Google widzi stronę tak, jak powinien.
- Kreska w kolumnie sondy
- Parametr opisany, ale nikt go dziś nie mierzy — takich jest 6. Powód stoi w karcie parametru.
Jedna sonda obsługuje wiele parametrów: sprawdzenie wystawionych plików zbiera dwanaście, nagłówki ochronne — sześć. Dlatego sond jest 12, sposobów sprawdzenia 23, a parametrów 50.