Retour à l'accueil

Détection de fraude dans les formulaires de leads : Méthodes et code

L'article décrit l'évolution des méthodes de détection de fraude dans les formulaires de leads : des formulaires dynamiques à un filtre « soft » avec trois scénarios de traitement. Code middleware et recommandations d'intégration ML pour développeurs middle/senior sont fournis.

Comment arrêter le spam commandé dans les formulaires de leads sans CAPTCHA
Advertisement 728x90

Détection de la fraude sur les formulaires de leads : du blocage à un filtrage intelligent

Les formulaires de lead font face à des attaques multicouches — allant de simples bots à des soumissions payées par des personnes réelles. Au départ, les bots scrapaient des pages statiques et remplissaient automatiquement les champs. Le passage à une génération dynamique de formulaires via Vue.js a temporairement perturbé ce flux en cachant les éléments aux scrapers.

Les spams ont rapidement adapté leur stratégie en inversant les endpoints API et en falsifiant des en-têtes comme User-Agent, la résolution d'écran ou les cookies. Les CAPTCHA traditionnels ont perdu de leur efficacité au fur et à mesure que les bots produisaient des réponses en temps réel.

L'introduction de jetons JWT liés aux sessions utilisateur, combinée à une vérification côté serveur, a permis de reprendre le contrôle. Pourtant, dans des niches concurrentielles comme l'immobilier, des services de remplissage de formulaires payants sont apparus — des personnes complètent des quiz contre rémunération, faussant ainsi les métriques de conversion.

Google AdInline article slot

Analyse comportementale pour un premier tri

Les timestamps à chaque étape du quiz permettent de détecter les tentatives automatisées. Si les délais de réponse tombent en dessous d'un seuil (par exemple <2 secondes par question), le lead est marqué comme suspect.

Le suivi de la trace numérique inclut :

  • Vérification des IPs pour des pics provenant de centres de données.
  • Analyse des cookies et de la fingerprinting (canvas, WebGL, polices).
  • Détection de contacts répétés dans la base (seuil >3 par session).

Ces mesures filtrent entre 80 et 90 % du spam automatisé, mais les attaques payées les contournent grâce à une exécution manuelle et à une nettoyage préalable.

Google AdInline article slot

Un nouveau paradigme : le contrôle du blocage

Un blocage strict déclenche une adaptation — les spams changent de proxy et effacent localStorage. Passer à une approche de « filtrage doux » change la donne.

Tous les leads sont traités avec succès, mais dirigés vers différents scénarios :

  • Ignorance totale : les données ne sont pas sauvegardées dans le CRM ni envoyées en notifications — les leads disparaissent simplement.
  • Marquage noir : stockés dans une base isolée pour analyse, jamais envoyés aux intégrations opérationnelles.
  • Conversion fantôme : envoyés au CRM avec un indicateur « spam », mais sans suivi d’événements dans les outils d’analyse (GA4, Yandex Metrika).

Cela décourage les attaquants : pas de refus signifie pas de retour, réduisant le ROI des campagnes frauduleuses payantes.

Google AdInline article slot

Mise en œuvre technique du filtre

Un middleware Node.js/Express vérifie les vecteurs de caractéristiques :

const fraudScore = calculateFraudScore(req.body, req.headers, sessionData);

if (fraudScore > 0.8) {
  routeToBlackhole(req.body); // Scénario 1
} else if (fraudScore > 0.5) {
  markAsSpamAndLog(req.body); // Scénario 2
} else if (fraudScore > 0.3) {
  sendToCrmWithFlag(req.body); // Scénario 3, pas d'analytique
} else {
  processNormally(req.body);
}

function calculateFraudScore(data, headers, session) {
  let score = 0;
  score += data.quizTime < 30 ? 0.4 : 0; // Durée du quiz
  score += isProxyIP(headers['x-forwarded-for']) ? 0.3 : 0;
  score += session.repeatContacts > 2 ? 0.2 : 0;
  return score;
}

La fingerprinting via scripts côté client collecte des données d'entropie : mémoire du dispositif, décalage horaire, contexte audio. Le serveur agrège ces données dans Redis pour une détection en temps réel au sein du cluster.

Échelle et surveillance

Pour les systèmes à fort trafic, intégrez des modèles d'apprentissage machine (XGBoost entraîné sur des données historiques de leads). L'entraînement sur des jeux de données étiquetés (spam/légitimes) atteint une précision >95 % avec un rappel de 90 %.

Surveillez via des tableaux de bord Grafana suivant le taux de fraude et les faux positifs. Testez A/B sur des sous-ensembles de trafic pour minimiser les risques.

Points clés

  • La fraude payée coûte 10 à 50 RUB par lead, mais gonfle le CPC des annonces de 20 à 30 %.
  • Le filtrage doux réduit la motivation des attaquants sans nuire à l'expérience utilisateur.
  • Combine analyse comportementale et ML pour une résilience à long terme.
  • Enregistrez tout pour l'analyse post-hoc et le re-entraînement des modèles.
  • Testez rigoureusement sur du trafic réel avant déploiement.

— Editorial Team

Advertisement 728x90

Lire ensuite