ForHosting KIT · Strumenti per sviluppatori

Come verificare una firma webhook HMAC

La verifica delle firme webhook spesso fallisce ai confini: il framework modifica il corpo, l’intestazione viene interpretata senza rigore o il confronto ordinario rivela informazioni temporali.

● BetaGratis · nel tuo browser
Usalo da WebAPIEmailTelegramApp presto

Questa capacità converte l’algoritmo HMAC e l’intestazione del fornitore in una lista precisa e ordinata. Non richiede payload, segreto o firma. Usi il risultato per implementare o controllare l’endpoint e verifichi il formato temporale, la codifica e la tolleranza ai replay nella documentazione ufficiale.

Parta dai byte firmati dal fornitore

Conservi esattamente i byte ricevuti prima dell’analisi. Analizzare e riserializzare JSON può cambiare spazi, ordine, escape, Unicode o fine riga. Legga l’intestazione indicata ignorando le maiuscole nel nome, ma ne convalidi rigorosamente il valore. Segua la grammatica del fornitore, rifiuti valori assenti, vuoti, duplicati o malformati e custodisca il segreto in un gestore protetto, perché è una credenziale sensibile.

Ricostruisca, calcoli e confronti nell’ordine corretto

Ricostruisca esattamente il messaggio firmato: solo corpo grezzo oppure data, separatore e corpo. Rispetti l’ordine e la codifica documentati. Calcoli HMAC con il segreto e l’algoritmo normalizzato, quindi codifichi il risultato come richiesto. Decodifichi le firme in byte di pari lunghezza e usi un confronto a tempo costante. Una codifica errata o lunghezze diverse comportano il rifiuto, poiché non è lecito adattare i valori.

Consideri la crittografia una parte dell’accettazione

Un HMAC uguale prova la conoscenza del segreto, non la freschezza o l’unicità. Applichi la tolleranza temporale, registri gli identificatori accettati e renda idempotente l’elaborazione. Ruoti i segreti secondo la sovrapposizione documentata. Rifiuti prima di accodare, restituisca un errore generico e registri solo codici sicuri. Provi corpi modificati, date scadute, intestazioni errate, segreti sbagliati e replay, così la verifica sarà più affidabile.

Implementare un nuovo endpoint webhook

Converta l’algoritmo e l’intestazione in una lista verificabile prima di programmare.

Controllare un’integrazione esistente

Verifichi l’ordine di acquisizione, HMAC, confronto sicuro e difesa dai replay.

Preparare test di sicurezza

Definisca test negativi per intestazioni assenti, corpi alterati, firme errate, date scadute e replay.

Questo strumento verifica un webhook reale?

No. Produce passaggi e non richiede mai payload, segreto o firma.

Quali algoritmi riconosce?

HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 e HMAC-SHA512. Gli altri causano un errore di input.

Perché conservare il corpo grezzo?

L’analisi e la riserializzazione possono cambiarne i byte e invalidare una firma corretta.

Un HMAC valido impedisce i replay?

No. Verifichi la data firmata e deduplichi gli identificatori forniti.

Devo inviare il segreto webhook?

No. Servono solo l’algoritmo e l’intestazione; conservi il segreto nell’ambiente protetto.

Quanto costa una richiesta API?

Ogni richiesta costa $0.002. L’implementazione deterministica opera nel browser senza inviare segreti.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/security/webhook-signature-verify-steps

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/security/webhook-signature-verify-steps \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"algorithm":"HMAC-SHA256","header_name":"X-Webhook-Signature"}'
{
  "algorithm": "HMAC-SHA256",
  "header_name": "X-Webhook-Signature"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "security.webhook_signature_verify_steps",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Leggi la documentazione completa del KIT →