Cloaking i spam SEO
ważność krytycznamierzonysposób infection
Strona pokazuje Googlebotowi inną treść niż ludziom albo ma w treści słowa spamu (leki, kasyna). Typowy skutek włamania nastawionego na pozycjonowanie cudzych stron.
Pusta blokada dla Googlebota to zabezpieczenie antybotowe, nie cloaking — dostaje osobne ustalenie bez wpływu na status.
WIKI
wiedza ze źródeł zewnętrznychArtykuł o parametrze „Cloaking i spam SEO” jest w przygotowaniu. Powstaje po kolei dla wszystkich 87 parametrów, każde twierdzenie z przypisem do źródła.
STATS
wyniki z systemu · tylko liczby zbiorczeTen parametr nie zapisuje odczytu per strona — przebieg zostawia tylko ustalenia, więc liczby sprawdzonych stron i wyników „ok” system nie ma. Pojawią się po wdrożeniu zapisu przebiegów per strona per parametr.
- Otwarte teraz
- 0stron: 0
- Nowe w ostatnim dniu
- 113.08.2026
- Otwarte od początku
- 2stron: 2
- Zamknięte
- 2od początku
- Mediana trwania
- 9 dni 22 hod wykrycia do zamknięcia
| Ustalenie | Skutek | Otwarte teraz | Łącznie | Zamknięte |
|---|---|---|---|---|
| Cloaking infection_cloaking | przejęcie strony | 0 | 2 | 2 |
| Słowa spamowe w treści infection_seo_spam | do weryfikacji | 0 | 0 | 0 |
| Blokada botów (nie incydent) bot_protection_detected | bez wpływu | 0 | 0 | 0 |
| Dzień | nowe ustalenia |
|---|---|
| 08.10.2026 | 0 ustaleń |
| 09.10.2026 | 0 ustaleń |
| 10.10.2026 | 0 ustaleń |
| 11.10.2026 | 0 ustaleń |
| 12.10.2026 | 0 ustaleń |
| 13.10.2026 | 0 ustaleń |
| 14.10.2026 | 0 ustaleń |
| 15.10.2026 | 0 ustaleń |
| 16.10.2026 | 0 ustaleń |
| 17.10.2026 | 0 ustaleń |
| 18.10.2026 | 0 ustaleń |
| 19.10.2026 | 0 ustaleń |
| 20.10.2026 | 0 ustaleń |
| 21.10.2026 | 0 ustaleń |
| 22.10.2026 | 0 ustaleń |
| 23.10.2026 | 0 ustaleń |
| 24.10.2026 | 0 ustaleń |
| 25.10.2026 | 0 ustaleń |
| 26.10.2026 | 0 ustaleń |
| 27.10.2026 | 0 ustaleń |
| 28.10.2026 | 0 ustaleń |
| 29.10.2026 | 0 ustaleń |
| 30.10.2026 | 0 ustaleń |
| 31.10.2026 | 0 ustaleń |
| 01.11.2026 | 0 ustaleń |
| 02.11.2026 | 0 ustaleń |
| 03.11.2026 | 0 ustaleń |
| 04.11.2026 | 0 ustaleń |
| 05.11.2026 | 0 ustaleń |
| 06.11.2026 | 0 ustaleń |
- Przebiegów
- 65sposób infection
- W 30 dni
- 0przebiegów
- Ostatni
- 19.09.2026start przebiegu
- Stron w przebiegach
- —65 przebiegów bez liczby stron
CARD
karta z kodu CREATO_PING, odczyt 01.10.2026Jak ten parametr trafia do ClickUpa: wynik sondy to linia w subtasku 2. Pomiar, a usterka, którą otwiera — linia w subtasku 1. Podsumowanie (z identyfikatorem CWE i kategorią OWASP), skąd liczy się wskaźnik zagrożenia i status strony. Projekcja z bazy skanera odświeża oba subtaski co godzinę. Do 22.09 każde ustalenie dostawało własny subtask i status ze starego słownika (PODATNA, WARNING…) — te słowa zostały jeszcze w części opisów pomiaru niżej jako język wewnętrzny sond.
| Obszar i ważność | Bezpieczeństwo · krytyczna (B35) |
|---|---|
| Workflow i częstotliwość | creato_ping_security_v2 · P4 działa na LAB247Skaner 2.0, rytm „p4”: co 24 h (tier 1–3), co 48 h (tier 4) · Szybki skan: tylko ewidentne przejęcie widoczne z zewnątrz.creato_ping_security_v2 · P3 działa na LAB247Skaner 2.0, rytm „p3” / „bezpieczenstwo”: premium co 6 h, reszta co 24 h (tier 1–3), co 9 dni (tier 4) · Dokładny skan. dns_integrity porównuje NS, MX, SPF i DMARC z wzorcem z poprzedniego przebiegu. |
| Sonda i helper | sposób infection · CREATO_PING/helpers/infection_check.py |
| Testy |
|
| Typ wyniku | 0–2 ustalenia: infection_cloaking albo bot_protection_detected (porównanie dwóch pobrań) oraz infection_seo_spam (słowa spamu); w dowodzie długości treści i tytuły obu pobrań albo trafione słowa |
| Jednostka | brak — wynik jakościowy; różnica długości treści jako ułamek (diff_ratio) |
| Próg i reguła | Cloaking: diff_ratio > 0,5 albo inny tytuł (infection_check.py:288). Blokada antybotowa: _BOT_PROTECTION_MAX_LEN = 512 B, _BOT_PROTECTION_MIN_NORMAL_LEN = 1000 B (infection_check.py:48–49). Spam: dowolne trafienie słowa z listy. |
| Gdzie leżą pokrętła | CREATO_PING/helpers/infection_check.py → detect_cloaking, _BOT_PROTECTION_MAX_LEN, _BOT_PROTECTION_MIN_NORMAL_LEN, _CHALLENGE_TITLESCREATO_PING/helpers/infection_check.py → SPAM_PATTERNS_PHARMA, SPAM_PATTERNS_CASINO, detect_seo_spamCREATO_PING/helpers/html_fetch.py → MAX_BODY_BYTES, GOOGLEBOT_USER_AGENTCREATO_PING/config/incident_policy.toml → [finding] infection_cloaking, infection_seo_spam, bot_protection_detected |
| Retencja odczytów | Surowy pomiar jako NIEZMIENNY wiersz tabeli `odczyty` w bazie skanera (wejście, wyjście, dowody, sha karty sondy i helpera, commit kodu) — trigger odrzuca każdą zmianę. Okno retencji z kohorty: 90 dni premium, 30 dni reszta; poza oknem zostają odczyty z werdyktem problemu, akcją albo etykietą, bo replay reguł ich potrzebuje (`skaner/retencja.py`). Do LAB247 ten kanał nie idzie (do bazy serwisu jadą dziś tylko sprawdzenia dostępności), więc poza odczytem zostaje werdykt w tabeli `werdykty` i sprawa w tabeli `sprawy`. |
| Znane rozbieżności |
|
| Karta przepisana z | CREATO_PING/helpers/infection_check.py · CREATO_PING/helpers/html_fetch.py · CREATO_PING/helpers/config.py · CREATO_PING/helpers/security_runner.py · CREATO_PING/helpers/security_testy.py · CREATO_PING/skaner/kohorty.toml · CREATO_PING/skaner/limity.toml · CREATO_PING/skaner/scenariusze/premium_pelny.toml · CREATO_PING/skaner/scenariusze/tani_ciezki.toml · CREATO_PING/skaner/scenariusze/tani_lekki.toml · CREATO_PING/config/incident_policy.toml · CREATO_PING/skaner/usterki.toml · CREATO_PING/skaner/ocena.py · odczyt 01.10.2026 |
infection_cloaking: bramka polityki otwarta (gate=true) → sprawa w skanerze → Inna treść dla Google niż dla ludzi (cloaking) — waga 5 → ocena 9–10 (czerwony), status strony „krytyczny”, dopóki sprawa jest otwarta. infection_seo_spam: bramka polityki otwarta (gate=true) → sprawa w skanerze → Słowa spamowe (apteka/kasyno) w treści — waga 5 → ocena 9–10 (czerwony), status strony „krytyczny”, dopóki sprawa jest otwarta. bot_protection_detected: bramka polityki zamknięta (gate=false) — zostaje odczyt i werdykt „bez_subtaska” w bazie skanera, sprawa nie powstaje, więc usterka „Strona odsiewa podszywające się roboty — zabezpieczenie działa poprawnie” (waga 0) nie wchodzi do wskaźnika strony. Sprawy zakłada rytm (worker, zlecenia z harmonogramu); w badaniu ta sama droga kończy się na usterce przebiegu i wskaźniku badania. Cloaking nie ma w katalogu znacznika incydentu — bywa legalną zmianą (kryterium właściciela z 30.09).
| Kod | Finding | Severity | Pewność | Skutek | Finding / alarm | Waga → ocena | Co zrobić |
|---|---|---|---|---|---|---|---|
| B35.01 | Cloakinginfection_cloaking | Krytyczna | Ewidentne | przejęcie strony | tak / tak | waga 5 → ocena 9–10 (czerwony) | Usuń złośliwy kod z motywu i wtyczek, sprawdź .htaccess. |
| B35.02 | Słowa spamowe w treściinfection_seo_spam | Średnia | Niepewne | do weryfikacji | tak / nie | waga 5 → ocena 9–10 (czerwony) | Wyszukaj frazy w treści; jeśli obce, strona jest przejęta. |
| B35.03 | Blokada botów (nie incydent)bot_protection_detected | Niska | Prawdopodobnie fałszywe | bez wpływu | nie / nie | waga 0 — nie usterka | Nic do zrobienia. |
| Kod i klucz | B35.01 · infection_cloaking · w tabeli typów |
|---|---|
| Co znaczy | Boty wyszukiwarek dostają inną treść niż ludzie — typowy SEO-hack. |
| Kiedy powstaje | Oba fetche strony głównej (UA monitora i UA Googlebota „Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”) mają status < 400, final_url normalnego fetchu nie leży poza domeną, i zachodzi |len_n − len_g| / max(len_n, len_g) > 0,5 LUB różne <title>; oraz NIE jest to bot_protection, tj. nie spełnia: (g_len ≤ 512 i n_len > 1000 i brak tytułu u Googlebota), ani tytuł Googlebota to challenge (just a moment / one moment, please / attention required / access denied / 403 forbidden / please wait / verifying / checking your browser / security check) przy zwykłym tytule normalnym, ani (tytuły równe i g_len < n_len). W praktyce: Googlebot dostaje WIĘCEJ treści albo inny tytuł.Logika: detect_cloaking, infection_check.py:251–313. Długości liczone w znakach zdekodowanego HTML (len(str)). Wejście wspólne dla infection_*: GET {scheme}://{domena}/ (follow_redirects, max 5, cap 3 MB, timeout http 5 s, connect 5 s) z UA „CREATO_PING/1.0 (+monitoring; contact: tomek@creato.pl)”; przy 403/406/415/429/451 jedna powtórka z nagłówkami przeglądarki. Heurystyki działają tylko, gdy ten fetch ma status_code < 400 (html_fetch.py:206). Uruchamiane na poziomie p3 i p4. |
| Severity · pewność | Krytyczna · Ewidentne |
| Skutek dla strony | przejęcie strony · zakłada Finding · alarm tak |
| Waga → ocena | waga 5 → ocena 9–10 (czerwony) |
| Klasyfikacja | CWE: CWE-506 (Embedded Malicious Code)OWASP Top 10:2025: A08:2025 Software or Data Integrity FailuresMITRE ATT&CK 19.2: T1608.006 Stage Capabilities: SEO Poisoning (ślad)OCSF 1.9.0: Detection Finding (class_uid 2004) |
| Rekord OCSF | finding_info.analytic.uid = "B35.01" · analytic.name = "infection_cloaking" · finding_info.types = ["B35 Cloaking i spam SEO"] |
| Co zrobić | Usuń złośliwy kod z motywu i wtyczek, sprawdź .htaccess. |
| Wersje typu |
|
| Kod i klucz | B35.02 · infection_seo_spam · w tabeli typów |
|---|---|
| Co znaczy | Frazy pharma/casino w HTML — mocny sygnał, ale możliwy fałsz przy treści legalnej. |
| Kiedy powstaje | Cały HTML (lowercase) zawiera podciąg z listy pharma (viagra, cialis, levitra, kamagra, tadalafil, sildenafil, buy pills online, online pharmacy) lub casino (online casino, poker online, blackjack, slot machine, free spins, bet365, kasyno online, ruletka online, zaklady bukmacherskie, slot gacor). Severity urgent, gdy trafienie jest w <title>, inaczej high.Listy: infection_check.py:79–88. Zwykłe dopasowanie podciągu, bez granic słów. Wejście wspólne dla infection_*: GET {scheme}://{domena}/ (follow_redirects, max 5, cap 3 MB, timeout http 5 s, connect 5 s) z UA „CREATO_PING/1.0 (+monitoring; contact: tomek@creato.pl)”; przy 403/406/415/429/451 jedna powtórka z nagłówkami przeglądarki. Heurystyki działają tylko, gdy ten fetch ma status_code < 400 (html_fetch.py:206). Uruchamiane na poziomie p3 i p4. |
| Severity · pewność | Średnia · Niepewne |
| Skutek dla strony | do weryfikacji · zakłada Finding · alarm nie |
| Waga → ocena | waga 5 → ocena 9–10 (czerwony) |
| Klasyfikacja | CWE: CWE-506 (Embedded Malicious Code)OWASP Top 10:2025: A08:2025 Software or Data Integrity FailuresMITRE ATT&CK 19.2: T1608.006 Stage Capabilities: SEO Poisoning (ślad)OCSF 1.9.0: Detection Finding (class_uid 2004) |
| Rekord OCSF | finding_info.analytic.uid = "B35.02" · analytic.name = "infection_seo_spam" · finding_info.types = ["B35 Cloaking i spam SEO"] |
| Co zrobić | Wyszukaj frazy w treści; jeśli obce, strona jest przejęta. |
| Wersje typu |
|
| Kod i klucz | B35.03 · bot_protection_detected · w tabeli typów |
|---|---|
| Co znaczy | Strona blokuje niezweryfikowane Googleboty; to poprawna praca zabezpieczenia. |
| Kiedy powstaje | Ta sama bramka co cloaking (oba fetche < 400, final_url w domenie, diff_ratio > 0,5 lub różne tytuły), ale spełniony jeden z warunków ochrony: (a) odpowiedź Googlebota ≤ 512 znaków, normalna > 1000 znaków i brak <title> u Googlebota; (b) tytuł Googlebota zawiera frazę challenge (just a moment, one moment, please, attention required, access denied, 403 forbidden, please wait, verifying, checking your browser, security check), a normalny nie; (c) tytuły identyczne i Googlebot dostał mniej znaków niż UA monitora.Uwaga: 4xx dla Googlebota daje status 'fail' → detect_cloaking zwraca None, więc twarda blokada 403 NIE generuje tego typu — tylko odpowiedź < 400. Severity low. Wejście wspólne dla infection_*: GET {scheme}://{domena}/ (follow_redirects, max 5, cap 3 MB, timeout http 5 s, connect 5 s) z UA „CREATO_PING/1.0 (+monitoring; contact: tomek@creato.pl)”; przy 403/406/415/429/451 jedna powtórka z nagłówkami przeglądarki. Heurystyki działają tylko, gdy ten fetch ma status_code < 400 (html_fetch.py:206). Uruchamiane na poziomie p3 i p4. |
| Severity · pewność | Niska · Prawdopodobnie fałszywe |
| Skutek dla strony | bez wpływu · tylko statystyka (gate=false) · alarm nie |
| Waga → ocena | waga 0 — nie usterka |
| Klasyfikacja | OCSF 1.9.0: poza klasami Findingu |
| Rekord OCSF | finding_info.analytic.uid = "B35.03" · analytic.name = "bot_protection_detected" · finding_info.types = ["B35 Cloaking i spam SEO"] |
| Co zrobić | Nic do zrobienia. |
| Wersje typu |
|
LOOP
bez pętliTrafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.
Ten parametr nie przeszedł jeszcze żadnej pętli. Kolejność po pierwszych pięciu grupach ustali miara trafności.