Neden bu kadar önemli?
API anahtarınız, hesabınızın kredi bakiyesine erişim hakkıdır. Anahtarı ele geçiren biri, sizin hesabınızdan istek atabilir ve bakiyenizi tüketebilir. Sızıntının sonucu çoğu zaman para kaybıdır; bu yüzden anahtarlarınızı bir parola gibi koruyun.
Altın kurallar
- Anahtarı asla istemci tarafında kullanmayın. Tarayıcıda çalışan JavaScript'e, mobil uygulamanın içine veya herkese açık bir sayfaya gömmeyin; kaynak kodunu inceleyen herkes anahtarı görür. Anahtarı yalnızca kendi sunucunuzda tutun ve istekleri sunucunuz üzerinden yapın.
- Kodun içine yazmayın. Ortam değişkeni veya gizli bilgi yöneticisi kullanın.
- Depoya koymayın.
.envdosyasını.gitignore'a ekleyin; git geçmişine bir kez girdiyse iptal edin (silmek yetmez, geçmişte kalır). - Paylaşmayın. Sohbetlere, e-postalara, ekran görüntülerine, destek taleplerine yapıştırmayın.
- Her uygulama/ortam için ayrı anahtar kullanın; biri sızarsa yalnızca onu iptal edersiniz.
- Düzenli izleyin. Beklenmedik kullanım sızıntı belirtisidir.
Güvenli mimari
Yanlış (güvensiz)
Tarayıcı (anahtar içinde) ──► Cocorex API
Anahtar tarayıcıda göründüğü için herkes çalabilir.
Doğru
Tarayıcı ──► Sizin sunucunuz (anahtar burada) ──► Cocorex API
Sunucunuz isteği doğrular (giriş yapmış kullanıcı mı?, hız sınırı, uygun içerik mi?) ve ardından anahtarla API'ye iletir. Böylece hem anahtarı korur hem de kullanıcı başına sınır koyabilirsiniz.
Basit bir örnek (Node.js, Express):
import express from "express";
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.COCOREX_API_KEY, // sunucuda, ortam değişkeninden
baseURL: "https://api.cocorex-ai.com/v1",
});
const app = express();
app.use(express.json());
app.post("/api/sor", async (req, res) => {
// 1) Kullanıcıyı doğrulayın ve hız sınırı uygulayın (burada atlanmıştır)
// 2) Girdiyi doğrulayın / uzunluğunu sınırlayın
const mesaj = String(req.body.mesaj || "").slice(0, 2000);
const resp = await client.chat.completions.create({
model: "cocorex-1",
max_tokens: 500,
messages: [{ role: "user", content: mesaj }],
});
res.json({ cevap: resp.choices[0].message.content });
});
app.listen(3000);
Anahtarı saklama yöntemleri
| Yöntem | Güvenlik | Not |
|---|---|---|
Ortam değişkeni (COCOREX_API_KEY) | İyi | Sunucuda/CI'da ayarlayın; kodda okuyun |
.env dosyası (git dışı) | İyi (yerelde) | .gitignore'a ekleyin |
| Gizli bilgi yöneticisi (bulut sağlayıcınızınki) | Çok iyi | Üretim için önerilir |
| Kod içine yazmak | Kötü | Asla |
| İstemci (tarayıcı/mobil) | Kötü | Asla |
| Sohbete/e-postaya yapıştırmak | Kötü | Asla |
Anahtar döndürme (rotation)
Hassas projelerde anahtarları periyodik değiştirin (örn. 90 günde bir) ve ekipten biri ayrıldığında hemen:
- Konsolda yeni bir anahtar oluşturun.
- Yeni anahtarı uygulamanıza/ortama verin ve dağıtın.
- Her şeyin çalıştığını istek günlüğünden doğrulayın (yeni anahtar adıyla istekler görünür).
- Eski anahtarı iptal edin.
Bu sırayla yapıldığında hizmette kesinti olmaz. Ayrıntı: API anahtarı oluşturma ve yönetme.
Harcamayı sınırlamanın yolları
- Kredi bakiyenizi düşük tutun. Ön ödemeli sistemde zarar, en fazla bakiyenizdir; ihtiyacınızdan fazla yüklemeyin.
max_tokensile her isteğin uzunluğunu sınırlayın.- Sunucunuzda kullanıcı başına hız sınırı ve girdi uzunluğu sınırı uygulayın.
- Ayrı bir test anahtarı ile geliştirme yapın.
- Konsolda Genel bakış'ı düzenli kontrol edin ve beklenmedik sıçramaları araştırın.
Sızıntı olduysa: acil eylem planı
Anahtarınızın sızdığından şüpheleniyorsanız (herkese açık bir depoya gitti, ekran görüntüsünde göründü, başkasıyla paylaşıldı):
- Hemen iptal edin: Konsolda API anahtarları → ilgili anahtar → İptal et. İptal anında geçerlidir.
- Yeni anahtar oluşturun ve uygulamanıza verin.
- İstek günlüğünü inceleyin: sızıntı zamanından sonra tanımadığınız kullanım var mı? (Anahtar, model, uç, zaman sütunları.)
- Bakiyeyi kontrol edin. Yetkisiz bir kullanım nedeniyle oluşan kayıp için, durumu bize yazarak bildirin; olay bazında değerlendiririz (garanti vermeyiz).
- Anahtarın sızdığı yeri temizleyin (depo geçmişi, paylaşılan belge, ekran görüntüsü).
- Bir daha olmaması için bu sayfadaki kuralları uygulayın.
Ekip ve müşteri kullanımı
- Anahtarları kişilere değil, amaçlara verin; anahtar adı rolü belirtsin.
- Müşterilerinizin anahtarlarını kendi hesaplarından oluşturmasını sağlamıyoruz; bir uygulama geliştiriyorsanız, son kullanıcıların isteklerini kendi sunucunuz karşılasın ve Cocorex anahtarını kullanıcılara hiç göstermeyin.
- API'yi yeniden satıyorsanız Kullanım Şartları bölüm 3 ve 7'yi okuyun.
Gizlilik açısından
- Kullanıcılarınızın mesajları, cevap üretilebilmesi için model sağlayıcılarına iletilir. Uygulamanızın kullanıcılarına bunu açıkça söylemelisiniz ve kendi gizlilik politikanızda belirtmelisiniz.
- Mümkünse modele göndermeden önce kişisel verileri anonimleştirin (isim, telefon, kimlik no).
- Cocorex, API isteklerinin içeriğini günlüğe yazmaz; yalnızca kullanım bilgilerini tutar (Gizlilik Politikası).
Kontrol listesi
- [ ] Anahtar yalnızca sunucuda ve ortam değişkeninde.
- [ ]
.env.gitignore'da; depoda anahtar yok. - [ ] Her uygulama/ortam için ayrı anahtar.
- [ ] Anahtarlar anlamlı adlandırılmış.
- [ ]
max_tokensve kullanıcı başına hız sınırı uygulanıyor. - [ ] Hata durumunda 5xx için yeniden deneme var (401/402 için yok).
- [ ] Kullanım düzenli izleniyor; bakiye uyarısı kurulu.
- [ ] Kullanılmayan anahtarlar iptal edilmiş.
- [ ] Sızıntı eylem planı biliniyor.