Skip to Content

Laravel (PHP)

ProxyTracer integreren in een Laravel-applicatie is uiterst eenvoudig. Door een standaard HTTP-middleware te maken, kun je je hele applicatie globaal beveiligen of de controle selectief toepassen op gevoelige routes (zoals /login of /checkout).

De Middleware

Laravel's native $request->ip() methode handelt automatisch load balancer extractie af (mits je TrustProxies middleware correct is geconfigureerd). We gebruiken de native Http facade om de API aan te roepen en het request te blokkeren indien gemarkeerd als proxy.

<?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. Extraheer het IP-adres (Laravel handelt reverse proxies automatisch veilig af) $ip = $request->ip(); // Sla IP-adressen voor lokale ontwikkeling over if (!in_array($ip, ['127.0.0.1', '::1'])) { try { // 2. Raadpleeg de ProxyTracer API met een strikte timeout van 500ms $response = Http::withToken(env('PROXYTRACER_API_KEY')) ->timeout(0.5) ->get("https://api.proxytracer.com/v1/check/{$ip}"); if ($response->successful()) { // 3. Verbreek de verbinding als er een proxy wordt gedetecteerd if ($response->json('proxy') === true) { return response()->json([ 'error' => 'Access Denied: VPN or Proxy detected.' ], 403); } } } catch (\Exception $e) { // Fail open: Log de fout en sta het verzoek toe om uptime te garanderen Log::warning("ProxyTracer validation failed: " . $e->getMessage()); } } // 4. Verkeer is schoon, ga door naar de controller return $next($request); } }

Configuratie:

Genereer de middleware met behulp van php artisan make:middleware ProxyTracerMiddleware.

Om het globaal toe te passen, voeg je het toe aan je middleware stack.

  • Laravel 11: Voeg het toe in je bootstrap/app.php bestand onder $middleware->append().
  • Laravel 10 en ouder: Voeg het toe aan de $middleware array in je app/Http/Kernel.php bestand.
Laatst bijgewerkt op