Costruire una pipeline di rilevamento frodi
Un singolo segnale sospetto raramente racconta la storia completa. Un'email potrebbe sembrare a posto da sola, ma abbinata a un IP di un datacenter e un dominio registrato da poco, il quadro cambia rapidamente. Combinare più API di Veille in una pipeline ti offre una visione composita del rischio per ogni registrazione.
Panoramica dell'architettura
Nella sua forma più semplice: valida l'email (/v1/intelligence/email), controlla l'età del dominio (/v1/intelligence/domain), e valuta l'IP (/v1/intelligence/ip). Tre chiamate, tre segnali, un punteggio composito.
Integrazione rapida
Python
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.veille.io/v1"
def score_signup(email: str, ip: str) -> dict:
headers = {"x-api-key": API_KEY}
email_data = requests.get(
f"{BASE_URL}/intelligence/email", params={"query": email}, headers=headers
).json()
domain_data = requests.get(
f"{BASE_URL}/intelligence/domain", params={"query": email_data["domain"]}, headers=headers
).json()
ip_data = requests.get(
f"{BASE_URL}/intelligence/ip", params={"query": ip}, headers=headers
).json()
age = min(domain_data.get("domain_age_days", 365), 365)
domain_risk = ((365 - age) / 365) * 100
composite = (
email_data["risk_score"] * 0.40
+ domain_risk * 0.35
+ ip_data["threat_score"] * 0.25
)
return {
"composite_score": round(composite),
"disposable_email": email_data["disposable"],
"vpn_or_proxy": ip_data["is_vpn"] or ip_data["is_proxy"],
"domain_age_days": domain_data.get("domain_age_days"),
}
TypeScript
const API_KEY = "YOUR_API_KEY";
const BASE_URL = "https://api.veille.io/v1";
const headers = { "x-api-key": API_KEY };
async function scoreSignup(email: string, ip: string) {
const [emailResponse, ipResponse] = await Promise.all([
fetch(`${BASE_URL}/intelligence/email?query=${email}`, { headers }),
fetch(`${BASE_URL}/intelligence/ip?query=${ip}`, { headers }),
]);
const [emailData, ipData] = await Promise.all([
emailResponse.json(),
ipResponse.json(),
]);
const domainResponse = await fetch(
`${BASE_URL}/intelligence/domain?query=${emailData.domain}`,
{ headers }
);
const domainData = await domainResponse.json();
const age = Math.min(domainData.domain_age_days ?? 365, 365);
const domainRisk = ((365 - age) / 365) * 100;
return {
compositeScore: Math.round(
emailData.risk_score * 0.4 + domainRisk * 0.35 + ipData.threat_score * 0.25
),
disposableEmail: emailData.disposable,
vpnOrProxy: ipData.is_vpn || ipData.is_proxy,
domainAgeDays: domainData.domain_age_days,
};
}
Pesi raccomandati
| Segnale | Peso | Perché |
|---|---|---|
| Punteggio di rischio email | 40% | Le email usa e getta/di ruolo sono l'indicatore di frode più forte |
| Rischio età dominio | 35% | I domini appena registrati correlano fortemente con la frode |
| Punteggio di minaccia IP | 25% | Le VPN sono usate anche da utenti legittimi attenti alla privacy |
5 casi d'uso
- Registrazione utente - calcola un punteggio composito alla registrazione e rifiuta automaticamente i valori sopra una soglia.
- Verifica al checkout - esegui la pipeline prima di elaborare un pagamento per individuare identità sintetiche.
- Onboarding venditori marketplace - seleziona i nuovi merchant combinando segnali di email, dominio e IP.
- Moderazione dei contenuti - dai priorità alla revisione dei post provenienti da account ad alto rischio.
- Sicurezza dei webhook - valida l'IP di origine e il dominio dei webhook in arrivo prima di elaborarli.
Articoli correlati
- Reputazione IP: perché il tuo firewall non è sufficiente - un'analisi approfondita del segnale IP utilizzato in questa pipeline
- Come le email usa e getta vengono usate nelle frodi agli account - un'analisi approfondita del segnale email utilizzato in questa pipeline
- Validazione IBAN: più di un semplice checksum - aggiungere la validazione dei pagamenti per ridurre le frodi al checkout
- Usare l'API Veille in un'azienda autonoma Paperclip - implementare questa pipeline antifrode in un org chart Paperclip con heartbeat e controllo dei costi