Skip to Content

Laravel (PHP)

Die Integration von ProxyTracer in eine Laravel-Anwendung ist unglaublich einfach. Indem Sie eine Standard-HTTP-Middleware erstellen, können Sie Ihre gesamte Anwendung global schützen oder den Schutz selektiv auf sensible Routen (wie /login oder /checkout) anwenden.

Die Middleware

Laravels native $request->ip()-Methode kümmert sich automatisch um die Load-Balancer-Extraktion (vorausgesetzt, Ihre TrustProxies-Middleware ist korrekt konfiguriert). Wir verwenden die native Http-Fassade, um die API abzufragen, und verwerfen die Anfrage, wenn sie markiert wird.

<?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; use Symfony\Component\HttpFoundation\Response; class ProxyTracerMiddleware { /** * Handle an incoming request. */ public function handle(Request $request, Closure $next): Response { // 1. IP extrahieren (Laravel verarbeitet Reverse-Proxys automatisch sicher) $ip = $request->ip(); // Lokale Entwicklungs-IPs überspringen if (!in_array($ip, ['127.0.0.1', '::1'])) { try { // 2. ProxyTracer-API mit einem strikten 500ms-Timeout abfragen $response = Http::withToken(env('PROXYTRACER_API_KEY')) ->timeout(0.5) ->get("https://api.proxytracer.com/v1/check/{$ip}"); if ($response->successful()) { // 3. Verbindung trennen, falls ein Proxy erkannt wird if ($response->json('proxy') === true) { return response()->json([ 'error' => 'Access Denied: VPN or Proxy detected.' ], 403); } } } catch (\Exception $e) { // Fail-Open: Fehler protokollieren und Anfrage zulassen, um die Verfügbarkeit sicherzustellen Log::warning("ProxyTracer validation failed: " . $e->getMessage()); } } // 4. Traffic ist sauber, weiter zum Controller return $next($request); } }

Konfiguration:

Generieren Sie die Middleware mittels php artisan make:middleware ProxyTracerMiddleware.

Um sie global anzuwenden, fügen Sie sie Ihrem Middleware-Stack hinzu.

  • Laravel 11: Fügen Sie es in Ihrer Datei bootstrap/app.php unter $middleware->append() hinzu.
  • Laravel 10 und niedriger: Fügen Sie es dem Array $middleware in Ihrer Datei app/Http/Kernel.php hinzu.
Zuletzt aktualisiert am