ARK. 1System · Przewodniki

Cztery zestawy testów i wszystko, co każdy test sprawdza.

Badanie jednej strony nie musi odpalać wszystkiego naraz. Zestaw układa testy w tury: najpierw cztery pytania „czy strona w ogóle żyje”, potem — tylko jeśli żyje — kolejne warstwy, od najtańszych do najdroższych. Tu są cztery gotowe zestawy, reguły, według których działają, i pełny katalog 24 testów.

Karta techniczna — podaje nazwy plików i testów. Jeden skan od zlecenia do subtaska opisuje Skan krok po kroku, architekturę — Skaner, znaczenie pomiarów — karty parametrów. Stan odczytany z kodu 22.09.2026.

Zestawów
42 tanie · 2 premium
Testów w katalogu
24z kartą 10 · bez karty 14
Tur najwięcej
7premium pełny
Termin strony
60 stesty bezpieczeństwa
RYS. 1Tury: od „czy żyje” do „co ma w środku”ramka przerywana = tylko przy suficie „zewnętrzne”

Schemat pełnego zestawu. Tani lekki kończy się na trzeciej turze, premium czujka ma własne tury (infekcja + reputacja). Kolejność nie jest ozdobą: dwa najdroższe testy stoją późno, bo zbyt wiele żądań pod rząd sprawia, że zapora strony klienta blokuje skaner.

TAB. 1Jak działa badanie w turachplik przy każdym kroku
NrKrokPlikCo się dzieje
01Wybór zestawuskaner/scenariusze/<nazwa>.toml · skaner/zestawy.pyZestaw to plik z listą tur. Przed startem przechodzi walidację: nagłówek rodzaj = "badanie", każdy test z katalogu, żaden test dwa razy, warunek tury pyta wyłącznie o test z wcześniejszej tury. Zły zestaw = odmowa zlecenia z listą błędów, nie częściowe badanie.
02Sufit zasobówskaner/strona.py::przygotuj_przebiegZestaw ma zasoby = darmowe albo zewnetrzne. Przełącznik --zewnetrzne podnosi sufit każdego zestawu. Zestaw, tury i sufit zapisują się przy przebiegu — później widać, czym go zbadano.
03Tury po koleiskaner/strona.py::wykonaj_przebiegTura rusza, gdy spełnia warunek gdy i mieści się w suficie. Inaczej jest pomijana z powodem: każdy jej test dostaje wynik „pominięty” z opisem, np. http = fail (warunek: ok|ok_po_ponowieniu). Nigdy po cichu.
04Testy z kartąskaner/adapter.py::wykonaj_karte · skaner/proby.tomlDziesięć testów dostępności. Każdy po kolei: próba bazowa, a gdy nie daje ok — warianty ponowień z katalogu (powtórka, druga forma adresu, port 80, bez TLS). Pierwszy wariant z ok kończy ponawianie; test bez ok w próbie bazowej zakłada przypadek do weryfikacji.
05Testy bezpieczeństwaskaner/strona.py::uruchom_parasol · helpers/security_testy.pyCzternaście testów bez karty. Wszystkie testy tury idą jednym procesem, każdy zostawia własny odczyt. Wspólny termin 60 s na stronę: test, który nie zdążył, dostaje wynik „nie da się sprawdzić” zamiast wieszać badanie. Fingerprint z wcześniejszej tury przechodzi do testów od niego zależnych — nikt nie zgaduje wersji drugi raz.
06Ocena po turzeskaner/strona.py::usterki_przebieguPo każdej turze z testami bezpieczeństwa liczy się ocena: odczyt → werdykt (trzy warstwy reguł) → usterka. Test bezpieczeństwa, który dał usterkę, ma wynik „niezaliczony” — i o ten wynik może już pytać warunek następnej tury.
07Wynik: usterki i wskaźnikskaner/ocena.py · skaner/usterki.tomlLista atomowych usterek z wagą 1–5, wskaźnik 1–10 (10 = najgorzej) oraz sekcja stłumione: co reguły odrzuciły i na podstawie której. Podsumowanie wersji rozkłada się na usterki tak samo jak w torze grupowym — ten sam wskaźnik w badaniu i w panelu.

Zestaw jest badaniem, nie rytmem monitoringu. Monitoring z harmonogramu mierzy za każdym razem to samo, bo inaczej szereg czasowy przestałby znaczyć to samo z dnia na dzień. Badanie odwrotnie — rozgałęzienie po wynikach jest jego sensem.

TAB. 2Cztery zestawy obok siebieczas: jedna strona WordPress, pomiar 22.09
ZestawDla kogo, kiedyZasobyTuryTestyKosztCzasCzego nie sprawdza
Tani lekkitani_lekkiPierwsze spojrzenie, strona bez abonamentu, przejście całego portfolio.darmowe314~15–20 żądań HTTP25 swersje WordPressa i wtyczek, podatności, wystawione pliki, sitemap, dryf DNS, reputację Google
Tani ciężkitani_ciezkiPełna diagnoza z zewnątrz bez płatnych usług: przed ofertą, po incydencie, strona bez abonamentu.darmowe522~100 żądań HTTP94 sreputację Google (Web Risk) i eskalację podatności w WPScan
Premium czujkapremium_czujkaSzybkie „czy wszystko w porządku” dla strony z abonamentem; po zgłoszeniu klienta; co 1–2 h.zewnętrzne49~12 żądań HTTP + 1 zapytanie Web Risk19 skonfigurację, SEO, wersje i podatności — to jest przegląd stanu, nie audyt
Premium pełnypremium_pelnyPełna diagnoza strony z abonamentem, przegląd okresowy, sprawdzenie po naprawie.zewnętrzne724~100 żądań HTTP + Web Risk + WPScan (0–kilka)65 snic z katalogu — wszystkie 24 testy
Tani
Tylko zasoby darmowe: żądania do strony, DNS i lokalny indeks podatności. Żadna usługa z limitem dobowym.
Premium
Sufit „zewnętrzne”: dochodzi reputacja Google (Web Risk), a w pełnym także eskalacja podatności w WPScan.
Lekki i czujka
Bez dwóch najdroższych testów (fingerprint ~60 żądań, exposure 25) — szybkie i bezpieczne dla WAF-ów klientów.

Czasy zmierzone na tej samej stronie jeden po drugim, bez kluczy usług zewnętrznych — z kluczami premium dochodzi po jednym zapytaniu na usługę. Czas zależy od strony bardziej niż od zestawu: na tej samej stronie fingerprint trwał raz 18 s, raz ponad 36 s, dlatego zestaw ciężki wypadł tu wolniej niż pełny. Zestawy ciężkie zjadają czas w fingerprincie i exposure.

TAB. 3Tani lekki — turyskaner/scenariusze/tani_lekki.toml
NrTuraRusza, gdyTestyPo co
1rozpoznaniezawszedns · tcp · ssl · httpcztery testy krytyczne — każdy zamyka gałąź badania
2stronahttp = ok albo ok po ponowieniuredirect · www_redirect · content · ttfbczy strona jest poprawnie podana
3co_to_za_stronahttp = ok albo ok po ponowieniuinfection_check · security_headers · mixed_content · robots_check · indexability_check · seo_checksześć odpowiedzi z jednego pobrania HTML (+ robots.txt)
TAB. 4Tani ciężki — turyskaner/scenariusze/tani_ciezki.toml
NrTuraRusza, gdyTestyPo co
1rozpoznaniezawszedns · tcp · ssl · http · ip_change · dns_integrity_checktesty krytyczne + porównanie DNS z linią bazową
2stronahttp = ok albo ok po ponowieniuredirect · www_redirect · partial_availability · content · ttfbpoprawność podania strony
3co_to_za_stronahttp = ok albo ok po ponowieniuinfection_check · security_headers · mixed_content · robots_check · indexability_check · sitemap_check · seo_checkinfekcja, nagłówki, widoczność dla Google
4glebiejhttp = ok albo ok po ponowieniuwp_fingerprint · exposuredwa najdroższe testy (~85 żądań) — dopiero gdy strona odpowiada
5podatnosciwp_fingerprint = okvuln_match · version_summaryCVE z lokalnego indeksu Wordfence — tylko z wiarygodnym fingerprintem
TAB. 5Premium czujka — turyskaner/scenariusze/premium_czujka.toml
NrTuraRusza, gdyTestyPo co
1rozpoznaniezawszedns · tcp · ssl · httpczy strona żyje
2stronahttp = ok albo ok po ponowieniucontent · ttfb · partial_availabilityczy to NASZA strona i czy działa w obu formach adresu
3infekcjahttp = ok albo ok po ponowieniuinfection_checkHTML dla przeglądarki i dla Googlebota — defacement, wstrzyknięcia, cloaking
4reputacjazewnętrznezawszesafebrowsingopinia Google — nie wymaga działającej strony
TAB. 6Premium pełny — turyskaner/scenariusze/premium_pelny.toml
NrTuraRusza, gdyTestyPo co
1rozpoznaniezawszedns · tcp · ssl · http · ip_change · dns_integrity_checktesty krytyczne + dryf DNS
2stronahttp = ok albo ok po ponowieniuredirect · www_redirect · partial_availability · content · ttfbpoprawność podania strony
3co_to_za_stronahttp = ok albo ok po ponowieniuinfection_check · security_headers · mixed_content · robots_check · indexability_check · sitemap_check · seo_checkinfekcja, nagłówki, widoczność dla Google
4glebiejhttp = ok albo ok po ponowieniuwp_fingerprint · exposurewersje i wystawione pliki
5podatnosciwp_fingerprint = okvuln_match · version_summaryCVE z indeksu Wordfence
6reputacjazewnętrznezawszesafebrowsingczarna lista Google
7eskalacja_cvezewnętrznewp_fingerprint = okwpscanWPScan tylko dla wtyczek z wersją, których Wordfence nie zna
TAB. 7Który test jest w którym zestawieliczone z tur powyżej
TestGrupaTani lekkiTani ciężkiPremium czujkaPremium pełny
dnsdostępność
tcpdostępność
ssldostępność
httpdostępność
redirectdostępność
www_redirectdostępność
partial_availabilitydostępność
contentdostępność
ttfbdostępność
exposurebezpieczeństwo
wp_fingerprintpodatności
vuln_matchpodatności
version_summarypodatności
wpscanpodatności
infection_checkbezpieczeństwo
safebrowsingbezpieczeństwo
security_headersbezpieczeństwo
mixed_contentbezpieczeństwo
robots_checkSEO
indexability_checkSEO
sitemap_checkSEO
seo_checkSEO
ip_changedomena
dns_integrity_checkdomena
Razem1422924
TAB. 8Testy z kartą — dostępność i wystawione pliki10 · karta sondy/<id>/karta.toml, opis pilnowany testem
TestCo mierzy · kosztZaliczony, gdy · niezaliczony, gdy · ponowieniaUsterki, jakie daje
dnsdostępnośćCzy domena rozwiązuje się na rekord A i — gdy znamy oczekiwany adres — czy ten adres jest wśród odpowiedzi.koszt: 1 zapytanie DNS · 2 szaliczony resolver zwraca rekordy A, a oczekiwany adres jest wśród nich (bez oczekiwanego wystarczy udane zapytanie)niezaliczony oczekiwanego adresu nie ma (porwanie DNS albo migracja hostingu); domena nie istnieje, brak odpowiedziponowienia: powtórka po 3 s · druga forma adresu (www ↔ bez www)waga 5 dns
tcpdostępnośćCzy serwer przyjmuje połączenie TCP na porcie 443.koszt: 1 gniazdo · 2 szaliczony połączenie zestawione przed upływem limitu; gniazdo od razu zamykaneniezaliczony odmowa, brak trasy, błąd DNS, przekroczony czasponowienia: powtórka · druga forma · port 80 (diagnoza: serwer żyje, nie działa HTTPS)waga 5 tcp
ssldostępnośćCertyfikat TLS na porcie 443: data wygaśnięcia i zgodność nazwy domeny z certyfikatem.koszt: 1 handshake TLS · 4 sNie cache’ujemy go: łapie rzeczy bez terminu — cudzy certyfikat po migracji, nieudane odnowienie.zaliczony certyfikat ważny dłużej niż 3 dni i nazwa domeny pasuje (wildcard tylko na jedną etykietę)niezaliczony wygasa za 0–3 dni; handshake się nie udał; certyfikatu nie da się odczytaćponowienia: powtórka · druga formawaga 4 sslwaga 2 ssl_expiry
httpdostępnośćKod odpowiedzi strony głównej po przekierowaniach (najwyżej 5).koszt: 1 GET (+1 przy blokadzie monitora) · 5 sOd jego wyniku zależą wszystkie tury poza rozpoznaniem i reputacją.zaliczony kod 200–399; albo blokada monitora (403/406/415/429/451), a ponowienie jako przeglądarka daje 200–399niezaliczony kod 400–599; odmowa, błąd TLS, pętla przekierowań, przekroczony czasponowienia: powtórka · druga forma · bez TLS (http://)waga 5 http
redirectdostępnośćCzy http:// przekierowuje na https:// i ile przeskoków ma łańcuch.koszt: 1–2 GET · 7 szaliczony adres końcowy na https:// (za długi łańcuch to ostrzeżenie, nie porażka)niezaliczony zostaje na http://; pętla przekierowań; błąd sieciponowienia: powtórkawaga 2 redirect
www_redirectdostępnośćCzy www i bez www kończą na jednym hoście (kanoniczność), a nie są dwiema osobnymi wersjami strony.koszt: 2 GET · 7 szaliczony obie formy kończą na tym samym hoście; albo www nie ma w DNS; albo domena jest subdomenąniezaliczony obie formy dają 200 na różnych hostach; jedna forma ląduje na obcej domenieponowienia: powtórkawaga 2 www_redirect
partial_availabilitydostępnośćCzy działa tylko jedna z form adresu (https://domena, https://www.domena).koszt: 2–4 GET · 15 szaliczony UWAGA — odwrotnie niż intuicja: ok = brak częściowej dostępności (obie działają albo obie leżą)niezaliczony dokładnie jedna forma daje 200, druga nie (błąd certyfikatu, inny kod, błąd sieci)ponowienia: powtórkawaga 3 partial_availability
contentdostępnośćCzy strona zawiera umówiony fragment tekstu (dokładny podciąg).koszt: 1 GET · 5 sWymaga parametru strony z oczekiwanym tekstem — bez niego test jest pomijany, nie niezaliczony.zaliczony kod poniżej 400 i fragment jest w treściniezaliczony fragmentu nie ma (podmieniona strona, zaślepka hostingu, parking); kod 400+ponowienia: powtórka · druga formawaga 3 content
ttfbdostępnośćCzas do odpowiedzi strony głównej, z histerezą.koszt: 1 GET · 10 szaliczony odpowiedź przyszła; czas ponad próg (3000 ms) podbija serię, ale do 3 wolnych z rzędu wynik zostaje okniezaliczony czas ponad próg przez 3 kolejne pomiaryponowienia: powtórka po 5 s · druga formawaga 2 ttfb
exposurebezpieczeństwoCzy strona wydaje publicznie pliki i endpointy ułatwiające atak — 25 sond ścieżek.koszt: 25 żądań · 15 s na sondęDrugi najdroższy test. Za dużo żądań pod rząd = WAF klienta blokuje IP skanera — dlatego stoi w późnej turze.zaliczony strażnik „soft-200” nie zgłasza fałszywych 200 i żadna z 25 sond nie spełnia warunkuniezaliczony .env, .git, kopie wp-config, debug.log, phpinfo, adminer, listing katalogu, archiwa i zrzuty SQL, xmlrpc, wyliczanie użytkowników, otwarta rejestracjaponowienia: powtórka (zmiana wejścia znaleziska nie „naprawi”)waga 4 exposure_envwaga 4 exposure_gitwaga 4 exposure_wpconfig_bakwaga 4 exposure_sql_dumpwaga 4 exposure_backup_archivewaga 4 exposure_phpinfowaga 4 exposure_db_consolewaga 3 exposure_debug_logwaga 3 exposure_directory_listingwaga 3 exposure_htaccess_bakwaga 2 exposure_xmlrpcwaga 2 exposure_users_enumwaga 2 exposure_author_enumwaga 2 open_registrationstłumione exposure_readmestłumione exposure_wpcronstłumione exposure_dev_manifeststłumione exposure_ds_store

Test z kartą ma warianty ponowień z skaner/proby.toml. Wariant nie zmienia werdyktu o stronie — „ok po ponowieniu” mówi, co zadziałało (druga forma adresu, port 80, http://), i jest materiałem dla weryfikacji, nie zaliczeniem.

TAB. 9Testy bezpieczeństwa, SEO, domeny i podatności14 · helpers/security_testy.py, jeden proces na turę
TestCo mierzy · kosztZaliczony, gdy · niezaliczony, gdyUsterki, jakie daje
wp_fingerprintpodatnościZ zewnątrz: wersja WordPressa, wtyczki, motyw i PHP — z meta generatora, readme.txt popularnych wtyczek, namespace’ów REST.koszt: ~60 żądań · najwyżej 60% terminu stronyNajdroższy test w systemie. Sam nie daje usterek — karmi podatności. Lista wtyczek jest z natury niepełna.zaliczony pomiar wiarygodny (strona nie ukrywa się za WAF-em ani nie zwraca błędu)niezaliczony „nie da się sprawdzić”, gdy wynik jest niewiarygodny (WAF, błąd certyfikatu) albo minął termin— (karmi inne testy)
vuln_matchpodatnościWykryte wersje rdzenia, wtyczek i motywów porównane z lokalnym indeksem Wordfence.koszt: 0 żądań · indeks 11 MB wczytany raz na badaniePojedyncze CVE są stłumione bramką — usterki z podatności niesie podsumowanie wersji.zaliczony porównanie wykonane (znalezione CVE idą do podsumowania wersji)niezaliczony „nie da się sprawdzić” bez wiarygodnego fingerprintu albo bez indeksustłumione vuln_cvestłumione vuln_wp_corestłumione outdated_pluginstłumione outdated_theme
version_summarypodatnościPodsumowanie wersji: rdzeń, wtyczki do aktualizacji, krytyczne CVE, motyw — plus „nieaktualne” według wordpress.org.koszt: 1 zapytanie wordpress.org (cache tygodniowy)Ta sama droga co w torze grupowym: rozkład nazwy podsumowania na atomy. Dzięki temu wskaźnik zgadza się z panelem.zaliczony brak krytycznych CVE (podsumowanie bez krytycznych jest informacyjne)niezaliczony niezaliczony, gdy są krytyczne CVE — rozkłada się na usterkiwaga 4 vuln_cve_krytycznawaga 4 vuln_wp_core_krytycznawaga 2 outdated_pluginwaga 2 wersja_nieznana
wpscanpodatnościEskalacja: WPScan dla wtyczek z konkretną wersją, których Wordfence nie zna.koszt: 0–kilka zapytań · 25 na dobę na CAŁĄ produkcjęUsługa zewnętrzna — tylko w zestawach z sufitem „zewnętrzne”.zaliczony sprawdzone (nic nieznanego albo brak nowych luk)niezaliczony „nie da się sprawdzić” bez klucza albo po limicie; znalezione luki jako vuln_cvestłumione vuln_cve
infection_checkbezpieczeństwoOznaki aktywnej infekcji w HTML strony głównej: obce skrypty, eval(atob), ukryte ramki, spam SEO, sygnatury kampanii 2025–26, cloaking (inna treść dla Googlebota).koszt: 2 pobrania (przeglądarka + Googlebot)Pusta odpowiedź dla Googlebota to zwykle blokada botów, nie cloaking. Bez usługi zewnętrznej leci bez reputacji Google.zaliczony strona pobrana i żadna heurystyka nie trafiłaniezaliczony znaleziony wskaźnik infekcji; albo strona niedostępna dla sondy (skan infekcji niewykonany)waga 5 infection_base64_evalwaga 5 infection_cloakingwaga 5 infection_same_origin_loaderwaga 5 infection_socgholish_gatewaywaga 5 infection_etherhidingwaga 5 infection_safe_browsingwaga 3 infection_seo_spamwaga 3 infection_foreign_scriptwaga 3 infection_hidden_iframestłumione infection_scan_unknown
safebrowsingbezpieczeństwoCzy Google oznaczył domenę jako malware albo phishing (Web Risk).koszt: 1 zapytanie Web Risk · budżet ~3300 na dobęUsługa zewnętrzna. Brak klucza = „nie da się sprawdzić”, nigdy „czysto”.zaliczony domena nie jest na liścieniezaliczony domena na czarnej liście Googlewaga 5 safebrowsing_flagged
security_headersbezpieczeństwoObecność 6 nagłówków ochronnych: HSTS, X-Frame-Options, X-Content-Type-Options, CSP, Referrer-Policy, Permissions-Policy.koszt: 1 HEAD (GET przy 405)Higiena, nie awaria — wszystkie braki są stłumione bramką i widoczne w sekcji „stłumione”.zaliczony nagłówek odczytany (braki są ustaleniami, nie awarią)niezaliczony stłumione missing_hstsstłumione missing_xframestłumione missing_nosniffstłumione missing_cspstłumione missing_referrer_policystłumione missing_permissions_policy
mixed_contentbezpieczeństwoZasoby ładowane przez http:// na stronie https:// (pomija mailto, tel, data, komentarze).koszt: 1 GET · osobny limit 10 szaliczony brak zasobów po http://niezaliczony co najmniej jeden zasób po http://waga 2 mixed_content
robots_checkSEOCzy /robots.txt istnieje i czy nie blokuje wszystkiego (Disallow: / dla * albo Googlebota).koszt: 1 GETzaliczony plik jest i nie blokuje całej stronyniezaliczony brak pliku; blokada całej stronywaga 2 robots_block_allstłumione robots_missing
indexability_checkSEOCzy strona jest widoczna dla Google: Disallow: / w robots.txt, meta robots noindex, nagłówek X-Robots-Tag.koszt: 0 dodatkowych (wspólne pobranie HTML)zaliczony żaden z trzech sygnałów noindexniezaliczony noindex — częsty ślad „Proś wyszukiwarki o nieindeksowanie” po migracjiwaga 2 noindex
sitemap_checkSEOMapa strony (wp-sitemap.xml albo sitemap_index.xml): liczba adresów, podział, ostatnia zmiana.koszt: 1–2 GETzaliczony mapa odczytana, liczba adresów w normieniezaliczony ponad 1000 adresów na zwykłej stronie firmowej — możliwy wstrzyknięty spamstłumione sitemap_absurd_url_count
seo_checkSEOLink kanoniczny, tytuł strony i zgodność http/https linków wewnętrznych.koszt: 0 dodatkowych (wspólne pobranie HTML)zaliczony canonical i tytuł są, linki wewnętrzne po httpsniezaliczony brak canonical; brak tytułu; canonical albo linki własne po http://stłumione seo_title_missingstłumione seo_canonical_missingstłumione seo_http_https_mismatch
ip_changedomenaCzy zbiór adresów IP domeny zmienił się od poprzedniego badania.koszt: 1 zapytanie DNSLinia bazowa badania jest osobna od produkcji — badanie nie rusza stanu monitoringu.zaliczony adresy bez zmian; pierwsze badanie domeny = zapis linii bazowej, bez ustalenianiezaliczony inny zbiór adresów — przejęcie domeny albo migracja hostingu bez wiedzy agencjiwaga 3 ip_changed
dns_integrity_checkdomenaDryf serwerów nazw, poczty (MX) i zabezpieczeń poczty (SPF, DMARC) względem linii bazowej.koszt: 4 zapytania DNSzaliczony rekordy bez zmian; pierwsze badanie = linia bazowaniezaliczony zmiana NS (przejęcie po wygaśnięciu domeny), zmiana MX, zdjęte SPF/DMARCwaga 3 dns_ns_changedwaga 3 dns_mx_changedwaga 3 dns_mail_auth_removedstłumione dns_spf_missingstłumione dns_dmarc_missing
Waga 5–1
Waga usterki z katalogu usterek atomowych: najcięższa wybiera pasmo wskaźnika (5 → 9–10, 4 → 7–8, 3 → 5–6, 2 → 3–4, 1 → 2).
stłumione
Bramka polityki zgłoszeń przepuszcza typ tylko do sekcji „stłumione” — widać go z nazwą reguły, ale nie podnosi wskaźnika.
Bez karty
Te testy nie mają wariantów ponowień: znalezisko bezpieczeństwa to fakt o stronie, a fałszywe alarmy odsiewają reguły, nie powtórka.
TAB. 10Sześć wyników testuo każdy może pytać warunek tury
zaliczonypomiar wykonany, bez usterki strony
ok po ponowieniupróba bazowa nie przeszła, wariant tak — to diagnoza, nie zaliczenie (zakłada przypadek)
niezaliczonytest z kartą: warunek porażki z karty; test bezpieczeństwa: dał usterkę strony w ocenie
nie da się sprawdzićpomiaru nie było: minął termin, brak DNS, niewiarygodny fingerprint, brak klucza usługi — z przyczyną
błąd sondyzawiódł test, nie strona: wyjątek, wynik niezgodny z kartą, brak odczytu
pominiętytest niemożliwy albo niechciany: tura pominięta, brak parametru strony, usługa zewnętrzna wyłączona

„Nie da się sprawdzić” nigdy nie udaje „czysto”: test bez pomiaru zostawia odczyt z przyczyną. Przykład — reputacja Google bez klucza usługi daje ten wynik, a nie pustą listę znalezisk.

TAB. 11Zasoby i budżetyco ogranicza badanie
ZasóbBudżetReguła
Termin strony60 s na testy bezpieczeństwa jednej tury; proces najwyżej 180 sTest po terminie = „nie da się sprawdzić”. Fingerprint dostaje najwyżej 60% terminu, gdy w turze są inne testy.
Żądania do strony klienta~100 w zestawach ciężkich (fingerprint ~60, exposure 25)Nie limit usługi, tylko WAF klienta: zbyt wiele żądań pod rząd blokuje adres skanera. Stąd późne tury.
Web Risk (Google)~3300 zapytań na dobę; bezpiecznik 3000Licznik dobowy wspólny z workerem. Po limicie test jest pominięty z powodem.
WPScan25 zapytań na dobę na CAŁĄ produkcjęEskalacja, nigdy rutyna. Budżet liczony w stanie badania, osobno od produkcji.
Indeks Wordfence11 MB, 0,8 s wczytaniaRaz na badanie i tylko w turze, która go potrzebuje.
TAB. 12Jak uruchomićz katalogu CREATO_PING albo przez API skanera
python -m skaner strona zestawylista zestawów z turami, testami i warunkami (i walidacja każdego pliku)
python -m skaner strona skanuj <domena> --zestaw tani_lekkibadanie jednej strony zestawem
python -m skaner strona skanuj <domena> --zestaw tani_ciezki --zewnetrznepodniesiony sufit: dopuszcza usługi zewnętrzne
python -m skaner strona skanuj <domena> --sondy wp_fingerprint,infection_checkpojedyncze testy bez zestawu (jedna tura)
POST /przebiegi {domena, zestaw, zewnetrzne}to samo przez API skanera (panel, agent); odpowiedź 202 i przebieg w tle

Własny zestaw to nowy plik w skaner/scenariusze/ — nagłówek rodzaj, nazwa równa nazwie pliku, zasoby i lista [[tura]] z polami nazwa, testy, opcjonalnie gdy i zasoby. Polecenie „strona zestawy” sprawdza go przed pierwszym użyciem.

TAB. 13Czego zestawy jeszcze nie umiejąnazwane, nie ukryte
„fingerprint = ok” ≠ „to jest WordPress”Warunek tury pyta o wynik testu, nie o etykietę. Strona bez WordPressa z wiarygodnym pomiarem przepuści turę podatności — bez szkody (0 CVE), ale z kosztem.
Brak warunku „strona ma wtyczkę”Strona z wtyczką Creato Ping mogłaby pominąć fingerprint (−60 żądań) — reguła zapisana, jeszcze niewykonywana.
Brak warunków na liczbach„czas odpowiedzi > 2 s → dołóż pomiar” to następny krok. Dziś warunek zna tylko wynik testu.
Limit 60 s tylko w badaniuSkan z harmonogramu (tor grupowy) dalej nie ma terminu na stronę — to osobna zmiana.
Zestaw to badanie, nie monitoringNagłówek „badanie” pilnuje, żeby nikt nie podpiął drzewka pod harmonogram: szereg czasowy musi mierzyć za każdym razem to samo.
Blog 24/7
22.09SMS z ofertą 35 euro za godzinę prowadzi na Telegram do rzekomej rekruterkispidersweb.pl22.09CERT Polska ostrzega przed fałszywymi sklepami Militaria.pl w reklamach na Facebookutelepolis.pl22.09CERT Orange o SMS-ach z rzekomą weryfikacją pracownika bankuspidersweb.pl22.09Gemini wyszedł z testowej piaskownicy i wszedł do sieci trzech firmcybersecuritydive.com22.09Netskope: nienadzorowane narzędzia AI w handlu spadły z 70 do 44 procentcybersecuritydive.com22.09WordPress 7.1.2 łata krytyczną lukę CVE-2026-87902 o ocenie 9,2patchstack.com22.09Wordfence opisał złośliwą wtyczkę must-use, która odtwarza się po usunięciuwordfence.com22.09Microsoft rozbił platformę EvilTokens, przejęła 12 tys. kontbleepingcomputer.com22.09Kilkanaście błędów w tanich okularach smart, parowanie Bluetooth bez hasłamalwarebytes.com22.09Arista: aktywnie wykorzystywana luka CVE-2026-93952 w VeloCloud Orchestrator, CVSS 10.0thehackernews.com