Detekce fraudu v leadových formulářích: od blokování ke inteligentnímu filtru
Leadové formuláře jsou předmětem mnohovrstevných útoků – od jednoduchých botů až po objednané žádosti vyplněné skutečnými lidmi. Původně roboty parsovaly statické stránky a automaticky vyplňovaly pole. Přechod na dynamickou generaci formulářů v Vue.js dočasně zpomalil tok, protože prvky byly skryté před parsováním.
Spammersi se přizpůsobili, analyzovali API koncové body a podvrhli hlavičky: User-Agent, rozlišení obrazovky, cookies. Klasické CAPTCHA ztratily efektivitu – boty generovaly data v reálném čase.
Zavedení JWT tokenů propojených s uživatelskou relací ve spojení se serverovou verifikací znovu získalo kontrolu. Nicméně v konkurenčních oblastech (např. nemovitosti) se objevily služby pro objednané vyplnění: za pevnou cenu člověk projde kvízem a odesílá formulář, což zkresluje konverzní metriky.
Analýza chování pro primární filtrování
Časové značky na jednotlivých krocích kvízu umožňují odhalit automatizované průchody. Pokud čas na odpovědi je nižší než prahová hodnota (např. <2 sekundy na otázku), je žádost označena jako podezřelá.
Monitorování digitálního stopy zahrnuje:
- Kontrolu IP adres na náhlé nárůsty z datových center.
- Analýzu cookie a fingerprintingu (canvas, WebGL, písma).
- Detekci opakujících se kontaktů v databázi (prahová hodnota >3 za relaci).
Tyto opatření odstraní 80–90 % automatizovaného spamu, ale objednané útoky jejich prostřednictvím čištění stop a ručního průchodu obcházejí.
Nová paradigma: řízení místo blokování
Přísné blokování vyvolává adaptaci: spammersi mění proxy, čistí localStorage. Přechod k 'měkkému' filtru změnil pravidla hry.
Žádost je vždy úspěšně potvrzena, ale směrována podle scénářů:
- Úplné ignorování: Data nejsou uložena ani v CRM, ani v notifikacích – žádost 'zmizí'.
- Černá značka: Záznam v izolované databázi pro analýzu, bez předávání do pracovních integrací.
- Průzračná konverze: Předání do CRM s flagem 'spam', ale bez událostí v analýze (GA4, Yandex Metrika).
Tento přístup demotivuje prováděče: absence odmítnutí maskuje neúčinnost, snižuje ROI objednaných útoků.
Technická realizace filtru
Serverový middleware na Node.js/Express ověřuje vektor příznaků:
const fraudScore = calculateFraudScore(req.body, req.headers, sessionData);
if (fraudScore > 0.8) {
routeToBlackhole(req.body); // Scénář 1
} else if (fraudScore > 0.5) {
markAsSpamAndLog(req.body); // Scénář 2
} else if (fraudScore > 0.3) {
sendToCrmWithFlag(req.body); // Scénář 3, bez analytics
} else {
processNormally(req.body);
}
function calculateFraudScore(data, headers, session) {
let score = 0;
score += data.quizTime < 30 ? 0.4 : 0; // Čas kvízu
score += isProxyIP(headers['x-forwarded-for']) ? 0.3 : 0;
score += session.repeatContacts > 2 ? 0.2 : 0;
return score;
}
Fingerprinting prostřednictvím klientového skriptu shromažďuje entropy: paměť zařízení, posun časové zóny, audio kontext. Server agreguje data v Redis pro real-time detekci shluků.
Škálování a monitorování
Pro systémy s vysokou zátěží integrujte ML modely (XGBoost na historických datech leadů). Trénink na označeném datasetu (spam/legální) dosahuje precision >95 % při recallu 90 %.
Monitorování přes Grafana: dashboardy podle míry fraudu, falešných pozitiv. A/B testování scénářů na podmnožině provozu minimalizuje rizika.
Důležité
- Objednaný fraud stojí 10–50 Kč/lead, ale zkresluje CPC v reklamě o 20–30 %.
- 'Měkký' filtr snižuje motivaci útoků bez poškození UX.
- Kombinujte behaviorální analýzu s ML pro odolnost.
- Všechno logujte pro post-analýzu a doplňování modelů.
- Testujte na reálném provozu před nasazením.
— Editorial Team
Zatím žádné komentáře.