Cloudflare Workers
Intercettare il traffico all'edge è il modo più efficiente per proteggere la tua applicazione. Utilizzando Cloudflare Workers, puoi verificare gli indirizzi IP in ingresso rispetto a ProxyTracer prima che la richiesta tocchi i tuoi server di origine.
L'Implementazione
Questo snippet estrae l'IP reale del client utilizzando gli header nativi di Cloudflare, interroga l'API ProxyTracer e restituisce un rigoroso 403 Forbidden se viene rilevato un proxy.
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
// 1. Estrai l'IP reale (Cloudflare lo fornisce nativamente)
const ip = request.headers.get("cf-connecting-ip");
// Lascia passare se non viene trovato alcun IP (es. sviluppo locale)
if (!ip) {
return fetch(request);
}
try {
// 2. Interroga l'API di ProxyTracer
const ptResponse = await fetch(`https://api.proxytracer.com/v1/check/${ip}`, {
method: "GET",
headers: {
"Authorization": `Bearer ${env.PROXYTRACER_API_KEY}`
}
});
if (ptResponse.ok) {
const data = await ptResponse.json();
// 3. Interrompi la connessione se viene rilevato un proxy/VPN
if (data.proxy === true) {
return new Response(
JSON.stringify({ error: "Access Denied: VPN or Proxy detected." }),
{
status: 403,
headers: { "Content-Type": "application/json" }
}
);
}
}
} catch (error) {
// Fail open: se l'API non è raggiungibile, consenti il traffico per garantire l'uptime
console.error("ProxyTracer API Error:", error);
}
// 4. Il traffico pulito prosegue verso il server di origine
return fetch(request);
}
};Nota di Sicurezza: Salva sempre la tua PROXYTRACER_API_KEY come Secret crittografato nella dashboard di Cloudflare Workers, mai in testo non cifrato.
Ultimo aggiornamento il