Skip to Content

Cloudflare Workers

Interceptar tráfego na borda (edge) é a forma mais eficiente de utilizar o ProxyTracer. Ao implementar este middleware em um Cloudflare Worker, requisições maliciosas são descartadas no nível da CDN antes mesmo de consumirem recursos do seu servidor de origem.

A Implementação

Este trecho de código extrai o IP real do cliente utilizando os cabeçalhos nativos da Cloudflare, consulta a API do ProxyTracer e retorna um rigoroso 403 Forbidden caso um proxy seja detectado.

export default { async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> { // 1. Extraia o IP real (a Cloudflare fornece isso nativamente) const ip = request.headers.get("cf-connecting-ip"); // Liberar se nenhum IP for encontrado (ex.: desenvolvimento local) if (!ip) { return fetch(request); } try { // 2. Consulte a API do 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. Encerre a conexão se um proxy/VPN for detectado 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 a API estiver inacessível, permita o tráfego para garantir a disponibilidade console.error("ProxyTracer API Error:", error); } // 4. O tráfego legítimo prossegue para o servidor de origem return fetch(request); } };

Nota de Segurança: Sempre armazene sua chave PROXYTRACER_API_KEY como um Secret criptografado no painel do Cloudflare Workers, nunca em texto puro.

Última atualização