Aller au contenu

API du Filtre Anti-Spam

Le Filtre Anti-Spam d’ALTCHA est une fonctionnalité unique de détection de spam qui vous permet de classer du texte et d’autres informations, vous permettant de filtrer le spam et d’identifier les messages légitimes. Il fonctionne en analysant du texte et d’autres informations, évaluant divers facteurs pour fournir un score numérique indiquant si le message semble légitime ou est probablement du spam.

Le Filtre Anti-Spam utilise du traitement du langage naturel et de l’apprentissage automatique pour analyser les données rapidement et de manière fiable. Pour des résultats optimaux, il est recommandé d’utiliser des langues avec un support complet. Bien que d’autres langues puissent également être analysées, certains facteurs de notation peuvent ne pas être disponibles.

Le respect de la confidentialité et la conformité au RGPD sont primordiaux pour tous les services d’ALTCHA. Le Filtre Anti-Spam respecte la confidentialité des utilisateurs et garantit la conformité au RGPD pour vous protéger, vous et vos clients. En savoir plus sur les considérations de confidentialité.

Cas d’utilisation

  • Détection de spam complète : Détectez rapidement et de manière fiable le spam soumis via des formulaires en ligne ou des API en analysant le texte et en validant des facteurs tels que les adresses e-mail et les adresses IP.
  • Validation d’adresses e-mail : Détectez les adresses e-mail falsifiées ou suspectes et faites la distinction entre les adresses “gratuites” et “professionnelles”.
  • Validation d’adresse IP : Identifiez si une adresse IP est associée à un centre de données, un proxy ou une sortie TOR, et vérifiez les listes de blocage pour toute activité malveillante.
  • Firewall de sécurité : Protégez-vous contre les tentatives courantes d’injection HTML et SQL dans le texte, et identifiez les attaquants connus grâce à des listes de blocage étendues.
  • Détection de langue : Détectez automatiquement jusqu’à 160 langues à partir du texte fourni.
  • Géolocalisation : Détectez de manière fiable la géolocalisation de l’utilisateur, les langues couramment parlées, la devise et d’autres informations à partir des adresses IP ou des fuseaux horaires des utilisateurs.
  • Géorepérage : Bloquez efficacement certains pays, régions ou continents pour empêcher l’accès ou l’utilisation de votre site web ou de vos API.

Essayez !

Testez l’API du Filtre Anti-Spam avec votre propre saisie en utilisant le formulaire ci-dessous.

Filtre Anti-Spam d'ALTCHA

Testez le Filtre Anti-Spam par vous-même en soumettant le formulaire avec votre propre saisie.

  • Utilisez différentes langues
  • Incluez des insultes ou des mots de spam courants
  • Utilisez une vraie adresse e-mail et une fausse
  • Explorez l’une des règles de texte prises en charge
En soumettant le formulaire, vous acceptez notre politique de confidentialité. Votre adresse IP et votre géolocalisation seront automatiquement détectées.

Autorisation

L’accès à l’API nécessite une clé API. Consultez la documentation d’autorisation de l’API pour plus d’informations.

Utilisation avec le Widget

Si vous utilisez le widget d’ALTCHA comme protection Captcha, intégrer directement le Filtre Anti-Spam sur votre site web est simple. Le formulaire sera classé lors de la vérification d’ALTCHA, avant que les données n’atteignent votre serveur.

Pour utiliser le Filtre Anti-Spam, ajoutez l’attribut spamfilter au widget (version 0.3+ requise):

<altcha-widget
challengeurl="https://eu.altcha.org/api/v1/challenge?apiKey=ckey_..."
spamfilter
></altcha-widget>

Pour plus d’informations et les changements de serveur requis, consultez la documentation.

Modes de Fonctionnement

Le Filtre anti-spam offre plusieurs fonctionnalités avancées pour la détection du spam. Selon votre cas d’utilisation et votre public cible, certaines fonctionnalités, telles que la classification des champs de texte, peuvent être invasives pour la vie privée. Heureusement, vous pouvez facilement configurer le comportement du Filtre anti-spam et définir le mode de vérification.

Mode Par Défaut

En mode par défaut, le Filtre anti-spam effectue :

  • Classification du texte dans tous les champs de texte du formulaire
  • Vérification de l’adresse e-mail
  • Vérification de l’IP
  • Vérification de la langue

Mode Adresse IP

Définissez spamfilter="ipAddress" pour vérifier uniquement l’adresse IP et le fuseau horaire de l’utilisateur. Ce mode ne soumet pas les champs de texte ni les adresses e-mail, ce qui en fait une option plus respectueuse de la vie privée qui évite l’envoi d’informations personnelles identifiables.

<altcha-widget
challengeurl="https://eu.altcha.org/api/v1/challenge?apiKey=ckey_..."
spamfilter="ipAddress"
></altcha-widget>

Bien que le Mode Adresse IP ne puisse pas détecter le spam généré par des humains, il identifie efficacement les bots grâce à une vérification complète des adresses IP.

Modes Personnalisés

Vous pouvez personnaliser davantage le comportement du Filtre anti-spam en utilisant configuration programmatique. Fournissez spamfilter comme un objet avec des paramètres individuels adaptés à vos besoins.

Classification de texte

L’API du Filtre Anti-Spam analyse le texte fourni, recherchant des modèles courants rencontrés dans le spam. Elle évalue divers facteurs et fournit un score cumulatif indiquant la qualité du texte.

Elle peut fournir des informations précieuses sur le texte :

  • Détection de langue
  • Évaluation globale du sentiment
  • Identification de mots de spam et d’insultes
  • Détection d’URL
  • Détection d’injections HTML et Javascript malveillantes
  • Identification de tentatives potentielles d’injection SQL

Consultez les règles de texte pour plus de détails.

Support des Langues

Le Filtre anti-spam prend actuellement en charge la classification des textes dans les langues énumérées ci-dessous. Pour les textes dans des langues non incluses dans cette liste, le classificateur par défaut en anglais sera utilisé. Cela fournit une fonctionnalité de base pour la détection de spam, même pour les langues non prises en charge.

  • Bulgare
  • Tchèque
  • Danois
  • Néerlandais
  • Anglais
  • Finnois
  • Français
  • Allemand
  • Grec
  • Hongrois
  • Italien
  • Norvégien
  • Polonais
  • Portugais
  • Roumain
  • Russe
  • Slovaque
  • Espagnol
  • Suédois

Vérification d’e-mails

L’API peut vérifier des adresses e-mail, vérifiant leur légitimité. Un score plus élevé indique une adresse e-mail suspecte ou fausse.

  • Vérification des enregistrements DNS
  • Détection des fournisseurs de messagerie gratuits
  • Vérification des listes de blocage pour les spammeurs connus

Consultez les règles d’e-mail pour plus de détails.

Vérification d’adresse IP

Vérifier les adresses IP des utilisateurs est crucial pour détecter les abus. L’API identifie les proxies, les sorties TOR, les centres de données et les adresses IP malveillantes connues.

  • Détection de géolocalisation
  • Géorepérage
  • Identification des centres de données, des proxies, VPN et sorties TOR
  • Vérification des listes de blocage pour des acteurs malveillants connus

Consultez les règles d’adresse IP pour plus de détails.

Vérification du fuseau horaire

La détection du fuseau horaire de l’utilisateur via le navigateur fournit des informations fiables de géolocalisation. L’API résout les fuseaux horaires en pays spécifiques.

  • Détection de géolocalisation
  • Géorepérage

Consultez les règles de fuseau horaire pour plus de détails.

Vous pouvez récupérer le fuseau horaire IANA de l’utilisateur en utilisant le code JavaScript suivant :

const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;

Point d’accès de l’API

Référence de l’API

Pour classer vos données, utilisez le point d’accès /api/v1/classify :

POST https://eu.altcha.org/api/v1/classify?apiKey=ckey_...
Content-Type: application/json
Referer: https://example.com/
{
"text": "Spammer ou ne pas spammer, telle est la question."
}

Requête

Pour utiliser l’API, envoyez une requête JSON encodée dans le format suivant :

{
"email": "@gmail.com",
"ipAddress": "auto",
"text": "Votre texte ici...",
"timeZone": "Europe/London"
}

Toutes les propriétés de requête sont optionnelles:

  • blockedCountries - Un tableau de codes pays (ISO 3166 alpha-2) que vous voulez bloquer.
  • classifier - Appliquer un classificateur spécifique. Classificateurs pris en charge : cs, en, de, es, fr, it, nl, pt.
  • disableRules - Un tableau de règles à désactiver. Par ex. ["text.EMOJI"].
  • email - Une adresse email à vérifier. Pour respecter la vie privée des utilisateurs, soumettre uniquement @<domaine>.
  • expectedCountries - Un tableau de codes pays (ISO 3166 alpha-2) dont on s’attend à ce que l’utilisateur provienne.
  • expectedLanguages - Un tableau de codes de langue (ISO 639 alpha-2) dans lesquels on s’attend à ce que le texte soit rédigé.
  • fields - Soumettre des champs textuels sous forme d’objet clé-valeur. Peut être utilisé à la place de text (la propriété text a la priorité).
  • ipAddress - L’adresse IP de l’utilisateur. Utiliser auto pour utiliser l’IP de l’appelant. Les IPv4 et IPv6 sont prises en charge.
  • text - Le texte à classifier. Un tableau de chaînes peut également être soumis.
  • timeZone - Le fuseau horaire de l’utilisateur au format IANA, fourni par le navigateur.

Réponse

L’API renvoie une classification JSON de vos données :

{
"classification": "GOOD",
"country": {
"code": "gb",
"name": "United Kingdom",
"native": "United Kingdom",
"phone": [
44
],
"continent": "eu",
"capital": "London",
"currency": [
"GBP"
],
"languages": [
"en"
]
},
"ipAddress": {
"city": "London",
"country": "gb",
"ipAddress": "10.0.0.1",
"rules": { ... },
"score": 0.5,
"zip": null
},
"reasons": [
"ipAddress.PROXY"
],
"score": 0.5,
"text": {
"classifier": "en",
"detectedLanguage": "en",
"rules": { ... },
"score": 0
}
}

Le résultat est déterminé par les propriétés de la réponse :

  • classification - Peut être GOOD (< 1), NEUTRAL (1…2), ou BAD (> 2), indiquant la notation globale.
  • score - Le score numérique global. Un score > 2 indique du spam.
  • reasons - Un tableau de règles correspondantes, triées par score.

Règles de notation

L’API de classification évalue plusieurs règles de notation pour chaque attribut que vous fournissez. Les règles individuelles et leurs scores sont retournés par l’API dans la réponse. Le score global résultant est une somme de tous les scores de règle.

Il y a 4 catégories distinctes de règles de notation, basées sur les entrées fournies :

Règles de texte

Le texte est analysé avec les règles suivantes utilisant le traitement du langage naturel et l’apprentissage automatique. Ces règles sont conçues pour détecter les modèles couramment utilisés dans les messages non sollicités, tels que le spam et la promotion, mais aussi pour détecter les insultes et le contenu nuisible.

CAPITALIZATION

Cette règle trouve les mots CAPITALISÉS dans le texte. La capitalisation du texte suggère un message non sollicité.

  • Signification : faible
  • Score : n × 0.25n est le nombre d’occurrences.

CURRENCY

Cette règle trouve tous les jetons correspondants à des formats de prix ou de devise courants. Les prix dans le texte indiquent une offre commerciale.

  • Signification : faible
  • Score : n × 0.25n est le nombre d’occurrences.

EMOJI

Cette règle trouve tous les caractères emoji. Une utilisation excessive d’emoji est considérée comme nuisible.

  • Signification : faible
  • Score : n × 0.25n est le nombre d’occurrences.

EXCLAMATION

Cette règle trouve tous les caractères d’exclamation. Une utilisation excessive d’exclamation est considérée comme nuisible.

  • Signification : faible
  • Score : n × 0.25n est le nombre d’occurrences.

HASH_TAGS

Cette règle trouve tous les #hashtags. Une utilisation excessive de #hashtags est considérée comme nuisible.

  • Signification : faible
  • Score : n × 0.25n est le nombre d’occurrences.

HTML

Cette règle trouve toutes les balises HTML. L’utilisation de HTML est considérée comme nuisible.

  • Signification : moyenne
  • Score : n × 1n est le nombre d’occurrences.

HTML_INJECTION

Cette règle trouve toutes les balises HTML néfastes, telles que <script>, <style> et <iframe>, qui indiquent une tentative malveillante.

  • Signification : élevée
  • Score : n × 5n est le nombre d’occurrences.

NUMBERS_ONLY

Cette règle correspond si le texte entier consiste uniquement en chiffres et indique des frappes de touches aléatoires.

  • Signification : moyenne
  • Score : 0 | 2

PROFANITY

Cette règle trouve des insultes couramment utilisées dans le texte.

  • Signification : élevée
  • Score : n × xn est le nombre d’occurrences, x est un score de mot variable.

RANDOM_CHARS

Cette règle trouve des séquences de caractères qui semblent correspondre à des frappes de touches aléatoires.

  • Signification : moyenne
  • Score : n × 1n est le nombre d’occurrences.

SENTIMENT

Cette règle évalue le sentiment global du texte. Un sentiment mauvais ou nuisible augmente le score.

  • Signification : moyenne
  • Score : 0 | 1

SHORT_TEXT

Cette règle correspond si le texte est trop court, inférieur à 40 caractères.

  • Signification : moyenne
  • Score : 0 | 1

SPAM_WORDS

Cette règle trouve des mots de spam couramment utilisés dans le texte.

  • Signification : moyenne
  • Score : n × xn est le nombre d’occurrences, x est un score de mot variable.

SPECIAL_CHARS

Cette règle trouve des séquences non alphanumériques plus longues que 5 caractères.

  • Signification : moyenne
  • Score : n × 1n est le nombre d’occurrences.

SQL_INJECTION

Cette règle trouve des tentatives potentielles d’injection SQL, telles que 1; drop table ....

  • Signification : élevée
  • Score : n × 5n est le nombre d’occurrences.

UNEXPECTED_LANGUAGE

Cette règle correspond si la langue détectée ne correspond pas aux langues attendues.

  • Signification : élevée
  • Score : 0 | 5

UNKNOWN_LANGUAGE

Cette règle correspond si la langue ne peut pas être détectée à partir du texte.

  • Signification : moyenne
  • Score : 0 | 1

URL

Cette règle trouve des adresses URL dans le texte. Une utilisation excessive d’URL est considérée comme nuisible.

  • Signification : faible
  • Score : n × 0.5n est le nombre d’occurrences.

Règles des courriels

Si vous fournissez une adresse électronique (email) à l’API du classificateur, elle sera analysée selon les règles suivantes conçues pour valider l’adresse. Cela peut vous indiquer si l’e-mail est une “adresse e-mail gratuite” comme Gmail, ou s’il peut effectivement recevoir des messages.

FREE_PROVIDER

Cette règle correspond si le nom de domaine de l’adresse e-mail est reconnu comme un fournisseur d’adresses e-mail gratuit connu, tel que Gmail. Un score de 0 indique un e-mail “professionnel” avec un nom de domaine personnalisé, et un score de 0,5 indique un fournisseur d’adresses e-mail gratuit parmi les plus populaires et “de confiance”.

  • Signification : faible
  • Score : 0 | 0,5 | 1

DMARC

Cette règle vérifie le DNS pour un enregistrement _dmarc. et correspond si l’enregistrement n’est pas configuré. L’absence d’enregistrement DMARC indique que le domaine est mal configuré.

  • Signification : faible
  • Score : 0 | 0,5

MX

Cette règle vérifie le DNS pour un enregistrement MX et correspond si l’enregistrement n’est pas configuré. L’absence d’enregistrement MX indique que l’adresse e-mail n’est pas valide car les e-mails ne peuvent pas être livrés.

  • Signification : élevée
  • Score : 0 | 5

REPORTED

Cette règle correspond si l’adresse e-mail est trouvée dans l’une des listes de blocage des spammeurs de forums connus.

  • Signification : élevée
  • Score : 0 | 5

INVALID

Cette règle correspond si le format de l’adresse e-mail est invalide, tel qu’un nom de domaine invalide.

  • Signification : élevée
  • Score : 0 | 5

Règles des adresses IP

Si vous fournissez une adresse IP (ipAddress) à l’API du classificateur, elle sera analysée selon les règles suivantes conçues pour évaluer la nocivité de l’acteur. Cela vous indiquera si l’utilisateur utilise un serveur proxy ou TOR, si l’adresse IP est située dans un centre de données, ou si elle est une adresse IP malveillante connue. Vous pouvez utiliser l’évaluation IP pour le blocage géographique.

BLOCKED_COUNTRY

Cette règle correspond si la géolocalisation détectée correspond aux blockedCountries.

  • Signification : élevée
  • Score : 0 | 5

HOSTING

Cette règle correspond si l’adresse IP est connue pour être située dans un centre de données.

  • Signification : moyenne
  • Score : 0 | 2

MALICIOUS

Cette règle correspond si l’adresse IP est trouvée dans l’une des listes de blocage des acteurs malveillants connus.

  • Signification : élevée
  • Score : 0 | 5

PROXY

Cette règle correspond si l’adresse IP est connue pour être un serveur proxy tel qu’un VPN.

  • Signification : faible
  • Score : 0 | 0,5

TOR

Cette règle correspond si l’adresse IP est connue pour être une sortie TOR.

  • Signification : moyenne
  • Score : 0 | 1

UNEXPECTED_COUNTRY

Cette règle correspond si la géolocalisation détectée ne correspond pas aux expectedCountries.

  • Signification : moyenne
  • Score : 0 | 1

Règles des fuseaux horaires

Le fuseau horaire de l’utilisateur (fourni par le navigateur) est évalué pour détecter une géolocalisation précise de l’utilisateur. C’est souvent plus précis que l’adresse IP en raison de l’inexactitude de l’ensemble de données IP et de l’utilisation de proxies.

BLOCKED_COUNTRY

Cette règle correspond si la géolocalisation détectée correspond aux blockedCountries.

  • Signification : élevée
  • Score : 0 | 5

UNEXPECTED_COUNTRY

Cette règle correspond si la géolocalisation détectée ne correspond pas aux expectedCountries.

  • Signification : moyenne
  • Score : 0 | 1