Skip to content

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 + nonce ile) 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) ve nonce ile 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