Ana içeriğe geç

Callback Güvenliği

Webhook bildirimleri için güvenlik önlemleri ve en iyi uygulamalar.

Hash Doğrulama (MD5)

MVPAY callback gövdesinde hash alanı ile gelir. Bu hash, belirli alanların belirli sırayla birleştirilip MD5 alınmasıyla oluşturulur.

Format

Aşağıdaki sıraya göre birleştirilir:

processID + "|" + amount + "|" + userID + "|" + type + "|" + apiKey

Örnek string:

TEST-PROCESS-ID-T1|100|2|withdraw|YOUR_API_KEY

Dikkat: Sıralama kritiktir. amount değeri string olarak kullanılmalıdır. Karşılaştırma için güvenli karşılaştırma fonksiyonları tercih edin (örn. hash_equals).

Doğrulama Kodları

import crypto from "crypto";

export function validateMVPayCallback(callbackData, yourApiKey) {
const hashString = `${callbackData.processID}|${callbackData.amount}|${callbackData.userID}|${callbackData.type}|${yourApiKey}`;
const expectedHash = crypto.createHash("md5").update(hashString).digest("hex");
// Timing-safe karşılaştırma
return crypto.timingSafeEqual(Buffer.from(expectedHash), Buffer.from(callbackData.hash));
}