Laravel (PHP)
ProxyTracer'ı bir Laravel uygulamasına entegre etmek son derece basittir. Standart bir HTTP Middleware oluşturarak uygulamanızın tamamını global olarak koruyabilir veya hassas rotalara (/login veya /checkout gibi) seçici olarak uygulayabilirsiniz.
Middleware
Laravel'in yerel $request->ip() metodu, yük dengeleyici IP çıkarımını otomatik olarak yönetir (TrustProxies middleware'inizin doğru yapılandırıldığı varsayılarak). API'yi sorgulamak ve işaretlenmişse isteği düşürmek için yerel Http facade'ını kullanırız.
<?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'yi çıkarın (Laravel ters proxy'leri otomatik ve güvenli bir şekilde işler)
$ip = $request->ip();
// Yerel geliştirme IP'lerini atlayın
if (!in_array($ip, ['127.0.0.1', '::1'])) {
try {
// 2. Kesin bir 500ms zaman aşımı ile ProxyTracer API'sini sorgulayın
$response = Http::withToken(env('PROXYTRACER_API_KEY'))
->timeout(0.5)
->get("https://api.proxytracer.com/v1/check/{$ip}");
if ($response->successful()) {
// 3. Proxy tespit edilirse bağlantıyı kesin
if ($response->json('proxy') === true) {
return response()->json([
'error' => 'Access Denied: VPN or Proxy detected.'
], 403);
}
}
} catch (\Exception $e) {
// Fail open: Hatayı günlüğe kaydedin ve çalışma süresini korumak için isteğe izin verin
Log::warning("ProxyTracer validation failed: " . $e->getMessage());
}
}
// 4. Trafik temiz, controller'a devam edin
return $next($request);
}
}Yapılandırma:
php artisan make:middleware ProxyTracerMiddleware komutunu kullanarak middleware'i oluşturun.
Bunu global olarak uygulamak için middleware yığınınıza ekleyin.
-
Laravel 11:
bootstrap/app.phpdosyanızda$middleware->append()altına ekleyin. -
Laravel 10 ve altı:
app/Http/Kernel.phpdosyanızın içindeki$middlewaredizisine ekleyin.
Son güncelleme tarihi