Skip to Content

Express (Node.js)

Express, Node.js ekosisteminin omurgasıdır. API rotalarınızı veya web uygulamanızı korumak için ProxyTracer'ı global veya rotaya özel bir middleware olarak uygulayabilirsiniz.

Middleware

Bu uygulama, istemci IP'sini çıkarır (NGINX veya AWS ALB gibi bir ters proxy arkasındaysanız X-Forwarded-For başlıklarını işler), yerel fetch kullanarak ProxyTracer'ı sorgular ve bir tehdit algılanırsa 403 Forbidden ile bağlantıyı anında keser.

const express = require('express'); const app = express(); // req.ip değerinin doğru olduğundan emin olmak için ters proxy'ye güvenin app.set('trust proxy', true); const proxyTracerMiddleware = async (req, res, next) => { // 1. IP'yi çıkarın // Express 'trust proxy' ayarını otomatik olarak yönetir, ancak her ihtimale karşı yedek kullanabiliriz const ip = req.headers['x-forwarded-for']?.split(',')[0].trim() || req.ip; // Yerel geliştirme ortamındaysa doğrudan geçirin if (!ip || ip === '::1' || ip === '127.0.0.1') { return next(); } try { // 2. ProxyTracer API'sini sorgulayın (Node 18+ yerel fetch destekler) const ptResponse = await fetch(`https://api.proxytracer.com/v1/check/${ip}`, { method: 'GET', headers: { 'Authorization': `Bearer ${process.env.PROXYTRACER_API_KEY}` } }); if (ptResponse.ok) { const data = await ptResponse.json(); // 3. Proxy/VPN tespit edilirse bağlantıyı kesin if (data.proxy === true) { return res.status(403).json({ error: "Access Denied: VPN or Proxy detected." }); } } } catch (error) { // Fail open: API'ye ulaşılamıyorsa çalışma süresini korumak için trafiğe izin verin console.error('ProxyTracer API Error:', error); } // 4. Trafik temiz, controller'a devam edin next(); }; // Tüm rotalara global olarak uygulayın app.use(proxyTracerMiddleware); // Veya yalnızca hassas rotalara kesin olarak uygulayın // app.post('/api/checkout', proxyTracerMiddleware, checkoutController);
Son güncelleme tarihi