Forum » 💻 Programlama & API Entegrasyonları » Güvenli API Proxy Yönetimi: İstemci Tarafında API Anahtarlarını Maskeleme Yöntemleri
13.07.2026 21:27
#1 (Konu Sahibi)

Güvenli API Proxy Yönetimi: İstemci Tarafında API Anahtarlarını Maskeleme Yöntemleri

Modern web ve mobil uygulamalarda, OpenAI, Anthropic veya Google Cloud gibi servislerin API'lerini doğrudan istemci tarafında (Client-Side Javascript) çağırmak büyük bir güvenlik açığıdır. Tarayıcının 'Geliştirici Araçları' (Developer Tools) kısmını açan herhangi bir kullanıcı, API anahtarınızı (API Key) saniyeler içinde görebilir ve sizin adınıza binlerce dolarlık kullanım faturası çıkarabilir. Bu durumu engellemenin en doğru yolu **Güvenli API Proxy Yönetimi** yapmaktır.

API Proxy mantığı oldukça basittir: İstemci doğrudan hedef servisle konuşmaz. Bunun yerine kendi kontrolünüzdeki bir sunucuya istek atar. Sunucu, gelen isteği alır, API anahtarını güvenli ortam değişkenlerinden (Environment Variables veya SQLite config) ekler, hedef servise iletir ve gelen yanıtı istemciye geri döner.

**PHP ile Basit Bir API Proxy Uygulaması:**
```php
// proxy.php
header('Content-Type: application/json');
session_start();

// Giriş yapmamış kullanıcıları engelle
if (!isset($_SESSION['user_id'])) {
http_response_code(403);
echo json_encode(['error' => 'Yetkisiz erişim']);
exit;
}

$input = json_decode(file_get_contents('php://input'), true);
$user_message = $input['message'] ?? '';

// API Key sunucu tarafında güvenli bir şekilde saklanır
$apiKey = 'API_ANAHTARINIZ_BURAYA_GELIR';

$ch = curl_init('https://api.openai.com/v1/chat/completions');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'model' => 'gpt-4o-mini',
'messages' => [['role' => 'user', 'content' => $user_message]]
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer ' . $apiKey
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
```

Bu yöntem sayesinde istemci tarafındaki kodunuz sadece `/proxy.php` adresine istek atar. API anahtarınız sunucu belleğinde kalır ve dış dünyadan asla erişilemez. Ayrıca bu ara katmanda rate-limiting (istek sınırlama) uygulayarak kötü niyetli kullanıcıların API limitlerinizi tüketmesini de engelleyebilirsiniz.
Cevap yazabilmek için Giriş Yapmalı veya Kayıt Olmalısınız.