Appearance
1.Secret Key'inizi Güvenli Bir Şekilde Saklayın
Secret Key Nedir?
SecretKey, sadece size özel tanımlanmış bir güvenlik anahtarıdır. API isteklerinin doğruluğunu ve kaynağını garanti altına almak için x_signature üretiminde kullanılır.
Bu anahtar, sisteminizin dış dünya ile kurduğu güvenlik katmanının temelidir. Sadece backend tarafında kullanılmalı, hiçbir şekilde istemciye (mobil, web, tarayıcı) sızdırılmamalıdır.
Güvenlik Uyarısı
SecretKey bilginizi asla JavaScript/React/Vue frontend kodlarında veya mobil uygulama paketleri (APK/IPA) içerisinde açık halde bulundurmayın.
Kullanım Amacı
- İstek Bütünlüğü: İsteklerin bütünlüğünü ve kaynağını doğrulamak
- Koruma: Replay (yeniden oynatma) ve manipülasyon girişimlerine karşı sunucu tarafı güvenlik sağlamak
- Tekil İmza: Tek seferlik imza üretimi (
timestamp+nonceile) yapmak
En İyi Uygulamalar
1. Saklama
- Secret Manager Kullanımı: Güvenli bir secret manager tercih edin (Vault, AWS Secrets Manager, Azure Key Vault vb.).
- Çevre Değişkenleri (Environment Variables): Geliştirme ortamlarında çevre değişkeni kullanın (
ROOFVPOS_SECRET_KEY). - Düz Metinden Kaçınma: Config dosyalarında düz metin olarak tutmayın; şifreleyin.
- Erişim Yetkisi: Erişimi sadece gerekli servislerle sınırlandırın (Least Privilege - En Az Yetki Prensibi).
2. Kullanım
- Belleğe sadece işlem süresince alın; kesinlikle loglamayın.
- İmza üretiminde HTTP Body’yi olduğu gibi kullanın (whitespace dahil).
- Her istekte zaman damgası (
timestamp) venonceile tekil imza üretin.
3. Rotasyon ve Olay Yönetimi
- Anahtarı düzenli aralıklarla yenileyin (örneğin her 60–90 günde bir).
- Sızıntı şüphesinde: Anında rotasyon + erişim iptali + audit süreci başlatın.
🚫 Kaçınılması Gerekenler
Kritik Hatalar
- ❌ Kaynak kod içine hardcode (sabit kodlama) etmek.
- ❌ Loglara, hata mesajlarına veya metriklere yazmak.
- ❌ URL parametresiyle taşımak.
- ❌ E-posta, sohbet (Slack, Teams vb.) kanallarında paylaşmak.
Örnek Secret Key Formatı
text
bfc0ada8-42e8-41fb-9e18-c4f11da6a935
