Cloudflare Workers
Przechwytywanie ruchu na brzegu sieci (Edge) to najbardziej wydajny sposób korzystania z ProxyTracer. Implementując to middleware w Cloudflare Worker, złośliwe żądania są odrzucane na poziomie CDN, zanim w ogóle obciążą zasoby Twoich serwerów źródłowych (origin servers).
Implementacja
Ten fragment kodu wyodrębnia prawdziwy adres IP klienta przy użyciu natywnych nagłówków Cloudflare, odpytuje API ProxyTracer i natychmiast zwraca odpowiedź 403 Forbidden, jeśli wykryto serwer proxy.
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
// 1. Pobierz prawdziwy adres IP (Cloudflare dostarcza go natywnie)
const ip = request.headers.get("cf-connecting-ip");
// Przepuść, jeśli nie znaleziono adresu IP (np. środowisko lokalne)
if (!ip) {
return fetch(request);
}
try {
// 2. Odpytaj API 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. Odrzuć połączenie, jeśli wykryto 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: Jeśli API jest niedostępne, przepuść ruch, aby zapewnić ciągłość działania
console.error("ProxyTracer API Error:", error);
}
// 4. Bezpieczny ruch trafia do Twojego serwera źródłowego (origin)
return fetch(request);
}
};Wskazówka bezpieczeństwa: Zawsze przechowuj klucz PROXYTRACER_API_KEY jako zaszyfrowany sekret (Secret) w panelu Cloudflare Worker, nigdy w postaci zwykłego tekstu.
Ostatnia aktualizacja: