Webhook e integrazioni
Verifica una firma webhook
Calcola la firma sul corpo grezzo della richiesta, prima di qualsiasi parsing JSON, e confronta a tempo costante. Riserializzare il payload cambia i byte, e da quel momento la firma non corrisponderà mai più.
Passaggi
- Cattura il corpo grezzo come byte. La maggior parte dei framework ti consegna per impostazione predefinita un oggetto già interpretato, il che è già tardi.
- Calcola la firma esattamente su quei byte con il segreto del tuo endpoint.
- Confronta con un confronto a tempo costante invece che con l’uguaglianza di stringhe.
- Interpreta il JSON solo dopo che la firma è stata verificata.
- Rifiuta tutto ciò che fallisce, e registra l’id di consegna invece del corpo.
Come verificare il risultato
Una consegna autentica supera la verifica, e lo stesso payload con un carattere cambiato no.
Che cosa va storto di solito
- Interpretare e riserializzare prima di calcolare la firma.
- Un middleware di parsing che consuma lo stream prima del tuo handler.
- Un semplice
===sulla firma, che perde informazioni sul tempo.
Ti ha risolto il problema?
Questo non ha aiutato
Scrivici indicando piattaforma e versione, i passaggi che hai seguito, il risultato atteso e il workspace o il codice QR coinvolto. Maschera ogni segreto prima di allegare qualsiasi cosa.
Scrivi all’assistenza