Skip to Content

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: