Vai al contenuto

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

  1. Cattura il corpo grezzo come byte. La maggior parte dei framework ti consegna per impostazione predefinita un oggetto già interpretato, il che è già tardi.
  2. Calcola la firma esattamente su quei byte con il segreto del tuo endpoint.
  3. Confronta con un confronto a tempo costante invece che con l’uguaglianza di stringhe.
  4. Interpreta il JSON solo dopo che la firma è stata verificata.
  5. 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