İletiniz webhook’unun gerçekten iletiniz tarafından gönderildiğini doğrulamak için her istek HMAC-SHA256 ile imzalanır. Endpoint’inizde bu imzayı mutlaka doğrulayın — aksi halde sunucunuza sahte event’ler gönderilebilir.Documentation Index
Fetch the complete documentation index at: https://docs.iletiniz.com/llms.txt
Use this file to discover all available pages before exploring further.
Gönderilen Başlıklar
| Başlık | Açıklama |
|---|---|
X-Iletiniz-Timestamp | İsteğin imzalandığı anın Unix saniye değeri. |
X-Iletiniz-Nonce | Her istek için yeniden üretilen 16-byte hex string. Replay korumasında kullanılır. |
X-Iletiniz-Signature | hex(hmac_sha256(secret, "${timestamp}.${nonce}.${sha256_hex(body)}")). |
İmza Şeması
İletiniz tarafında imza şöyle üretilir:Doğrulama Örnekleri
Önemli Notlar
Ham gövdeyi imzala — parse edilmiş objeyi değil
Ham gövdeyi imzala — parse edilmiş objeyi değil
JSON.parse + JSON.stringify yuvarlağına soktuğunuz an key sırası, boşluk ve sayı formatı değişebilir, imza tutmaz. Mutlaka byte-byte aynı body üzerinden sha256 alın. Express için
express.raw(), FastAPI için await req.body().Sabit-zaman karşılaştırma kullanın
Sabit-zaman karşılaştırma kullanın
== ile karşılaştırma timing attack’a açıktır. crypto.timingSafeEqual (Node), hmac.compare_digest (Python), hash_equals (PHP), hmac.Equal (Go) kullanın.Timestamp tazeliği zorunlu
Timestamp tazeliği zorunlu
İmza geçerli olsa bile eski bir istek replay edilebilir. ±5 dakika (300 sn) tolerans dışı timestamp’leri reddedin.
Secret'ı rotasyona alın
Secret'ı rotasyona alın
Dashboard’da endpoint düzenleyerek yeni secret üretebilirsiniz. Yeni secret üretildiği anda eski geçersizleşir; rolling deploy planlayın (örn. yeni secret’ı önceden env’e yaz, sonra dashboard’dan değiştir, sonra eskiyi sil).

