Web Kancası İstek Yapılarını Anlamak
Bu araç, bir webhook isteğinin HTTP yöntemini, başlıklarını ve ham gövdesini incelemenizi sağlar. İstek gövdesini sunucu tarafında ayrıştırılmadan önce yapıştırarak biçimlendirilmiş JSON veya URL kodlu form verisini ve imza ya da zaman damgası başlıklarını kontrol edebilirsiniz.
Web Kancası İletişiminde Başlıkların Rolü
HTTP başlıkları, web kancası isteklerinin meta verilerini taşır ve hedef sunucuya isteğin nasıl işleneceği konusunda bilgi verir. Örneğin, Content-Type başlığı gövdenin hangi formatta olduğunu belirtirken, özel sağlayıcı başlıkları güvenlik ve kimlik doğrulama verilerini taşır.
Web Kancası İstek Denetleyicisi, yapıştırılan başlık satırlarını analiz ederken belirli kuralları uygular:
- Başlıklar "Ad: değer" (Name: value) formatında, her satırda bir adet olacak şekilde girilmelidir. Bu formata uymayan hatalı başlık satırları için
‹line›: Başlık satırı geçersiz. Adı Kullan: değer.hatası gösterilir. - Araç en fazla 200 boş olmayan başlık satırını kabul eder. Bu sınır aşıldığında
Çok fazla başlık satırı var. İsteği 200 veya daha az başlıkta tutun.hatası tetiklenir. - Başlıklar için toplam karakter sınırı 100.000'dir. Bu sınırın aşılması durumunda
Başlıklar bu araç için çok uzun. İlgisiz veya tekrarlanan değerleri kaldırın.hatası gösterilir.
Web Kancası Gövde Formatları ve Biçimlendirme
Web kancaları verilerini çoğunlukla JSON veya URL kodlu (URL-encoded) form verisi olarak gönderir. Web Kancası İstek Denetleyicisi, bu iki yaygın formatı otomatik olarak algılar ve okunabilir şekilde biçimlendirir. Diğer tüm gövde türleri ise herhangi bir biçimlendirme yapılmadan düz metin (plain text) olarak bırakılır.
Gövde verilerinin işlenmesinde şu teknik kurallar geçerlidir:
- JSON Ayrıştırma: JSON gövdeleri
JSON.parseyöntemi kullanılarak ayrıştırılır ve ardından yeniden sıralanır. Bu işlem, orijinal verideki boşlukların, girintilerin ve alanların ilk dizilim sırasının kaybolmasına neden olur. Eğer gövde JSON yapısına benziyor ancak geçerli bir sözdizimine sahip değilse, araçGövde JSON'a benziyor ancak ayrıştırılamadı.hatasını verir. - URL Kodlu Form Verileri: Form gövdesinde eksik veya hatalı bir yüzde kodlaması tespit edilirse,
Form gövdesi tamamlanmamış bir yüzde kaçışı içeriyor.hatası tetiklenir. - Karakter Sınırı: İstek gövdesi en fazla 1.000.000 karakter uzunluğunda olabilir. Bu limit geçildiğinde
Gövde bu alet için çok uzun. 1.000.000 karakterin altında tutun.uyarısı ekrana gelir. Gövde tamamen boş bırakıldığında ise çıktı alanında(boş gövde)ifadesi görüntülenir.
Web Kancası İmzaları ve Zaman Damgaları
Güvenli web kancası entegrasyonlarında, gönderici sistem isteğin kendisinden geldiğini ve yolda değiştirilmediğini kanıtlamak için HTTP başlıklarına bir imza ekler. Bu imzalar genellikle istek gövdesinin bir gizli anahtar (secret) ile HMAC algoritması kullanılarak şifrelenmesiyle oluşturulur. Ayrıca, replay (yeniden oynatma) saldırılarını önlemek amacıyla isteğe bir zaman damgası (timestamp) başlığı da eşlik eder.
Web Kancası İstek Denetleyicisi, başlıklar arasında signature, hmac, digest gibi yaygın imza kalıplarını ve bilinen zaman damgası adlarını tarar. Eşleşen başlıklar tespit edilirse, bunlar çıktı panelinde listelenir. Eğer bu kalıplara uyan bir başlık bulunamazsa Ortak bir imza veya web kancası zaman damgası başlığı bulunamadı. mesajı gösterilir.
İnceleme ve Doğrulama Arasındaki Fark
Önemli bir güvenlik ayrımının yapılması gerekir: Bu araç yalnızca imza başlıklarının varlığını ve adlarını tespit eder. Araç üzerinde HMAC hesaplaması yapılmaz, herhangi bir kriptografik algoritma çalıştırılmaz, orijinal istek baytları doğrulanmaz, gizli anahtar (secret) işlenmez ve replay penceresi kontrol edilmez. Arayüzde de belirtildiği üzere: "Bir imza alanının bulunması isteğin gerçek olduğunu kanıtlamaz; gerçek doğrulama için gönderenin imzalama kuralları, gizli anahtarı veya anahtarı ve orijinal istek baytları gerekir."
Yerel Testler İçin cURL Kullanımı
Web kancası entegrasyonu geliştirirken, gelen istekleri yerel geliştirme ortamında simüle etmek yaygın bir uygulamadır. Web Kancası İstek Denetleyicisi, yapıştırılan yöntemi, başlıkları ve gövdeyi analiz ederek yerel testlerde kullanılmak üzere otomatik olarak bir cURL komutu üretir.
Üretilen cURL komutu, kabuk (shell) kaçış karakterlerine uygun şekilde tırnak içine alınır ve doğrudan yerel bir sunucu adresini hedefleyecek şekilde yapılandırılır. Bu komut sabit olarak http://localhost:3000/webhooks adresini hedef alır. Geliştiriciler bu komutu kopyalayarak terminal üzerinden yerel API uç noktalarına istek gönderebilir ve kodlarının gelen web kancası verisine nasıl tepki verdiğini test edebilirler.
Gizlilik ve Veri İşleme Kuralları
Web kancası istekleri genellikle hassas müşteri verileri, API anahtarları veya sistem bilgileri içerebilir. Bu nedenle veri güvenliği kritik önem taşır.
Yapıştırılan istek verilerinin işlenmesi tamamen kullanıcının web tarayıcısında gerçekleşir. BroBroGo, yapıştırdığınız istek içeriğini, başlıklarını veya gövdesini uzak sunuculara yüklemez ve hiçbir şekilde kaydetmez. Tüm analiz ve biçimlendirme işlemleri yerel olarak tarayıcı üzerinde tamamlanır.
Sıkça Sorulan Sorular
Bu sayfa canlı bir webhook geri araması alabilir mi?
Hayır. Yakalanan isteği inceleme için buraya yapıştırın. Sayfa genel bir uç nokta oluşturmaz, geri aramaları almaz veya oluşturulan test isteğini göndermez.
Hangi webhook gövde formatlarını inceleyebilirim?
JSON ve URL kodlu form gövdeleri algılanır ve biçimlendirilir. Diğer gövdeler düz metin olarak kalır, böylece araç XML, çok parçalı veya ikili içerikte tahminde bulunmaz.
İmza alanı bulmak isteğin gerçek olduğunu kanıtlar mı?
Hayır. Araç yalnızca imzayı ve ilgili zaman damgası başlıklarını gösterir. Gerçek doğrulama, gönderenin tam imzalama kurallarına, gizli veya genel anahtarına ve orijinal istek baytlarına ihtiyaç duyar.