iyzico Ödeme Callback ve Signature Doğrulama Süreci Nasıl Güvenli Hale Getirilir?

0 Yanıt 20 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
İyzico ile ödeme entegrasyonu yaparken, callback ve signature doğrulama mekanizmaları kritik önemdedir. Bu süreçler, ödeme sonrası alınan verilerin güvenilirliğini ve bütünlüğünü sağlamak adına temel unsurlardır. Doğru yapılandırılmadığında, sahte veya manipüle edilmiş verilerle karşılaşma riski artar, bu nedenle bu adımların detaylarına dikkat etmek gerekir.

İlk olarak, iyzico'nun sağladığı callback URL'sine gelen verilerin bütünlüğünü kontrol etmek için signature doğrulama kullanılır. Bu, genellikle ödeme işlemi sırasında alınan parametrelerle birlikte gönderilen ve iyzico tarafından hesaplanan bir imzadır. İmza, genellikle belirli alanların (örn. orderId, paymentId, status, amount) belirli bir sıralama ve gizli anahtar (secret key) kullanılarak hashlenmesiyle oluşturulur.

İşte temel çalışma adımları:

  1. Gelen veriyi alın: Callback ile gelen tüm parametreleri kaydedin.
  2. İmza bilgisini ayıklayın: Genellikle 'signature' veya 'hash' adında bir parametre gönderilir.
  3. İçerik ve anahtar ile yeniden imza oluşturun: Alınan parametreleri sıralayın, gizli anahtar ile birleştirin ve hash algoritmasıyla (örn. SHA256) yeni bir hash oluşturun.
  4. İki imzayı karşılaştırın: Sunucunuzda oluşturduğunuz hash ile gelen imzayı karşılaştırın. Eşleşiyorsa, verilerin bütünlüğü sağlanmıştır.


Örnek olarak, PHP'de şu şekilde yapılabilir:

KOD
1234567891011
$secretKey = 'gizli_anahtarınız';
$receivedSignature = $_POST['signature'];
$orderedParams = $_POST['orderId'] . $_POST['paymentId'] . $_POST['status'] . $_POST['amount'];
$calculatedSignature = hash_hmac('sha256', $orderedParams, $secretKey);

if ($calculatedSignature === $receivedSignature) {
    // Güvenli, geçerli callback
} else {
    // Güvenlik hatası, geçersiz callback
}


Hata alınması veya doğrulama başarısızsa, ilk dikkat edilmesi gereken nokta, parametrelerin doğru sıralanıp sıralanmadığı ve kullanılan hash algoritmasının uyumu. Ayrıca, gizli anahtarın gizliliği ve doğru kullanımı da kritik.

Bu doğrulama adımlarını otomatikleştirmek ve düzenli log tutmak, olası sahte işlemleri erkenden tespit etmenizi sağlar. Güvenlik açısından, sadece HTTPS üzerinden iletişim kurmak ve callback URL'yi erişime kapalı tutmak da önemli.

İyzico callback ve signature doğrulama konusunda sizin karşılaştığınız en büyük problem nedir? Hangi dil veya framework ile entegrasyon yapıyorsunuz?

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi