Skip to main content
Verificare le firme dei webhook è fondamentale per la sicurezza. Garantisce che il webhook provenga effettivamente da storekit e non sia stato manomesso.

Perché verificare?

Poiché il tuo endpoint webhook è pubblicamente accessibile, chiunque potrebbe inviargli richieste fingendosi storekit. La verifica della firma previene:
  • Richieste falsificate: Attaccanti che inviano webhook fasulli
  • Attacchi di replay: Vecchi webhook rinviati in modo malevolo
  • Manomissione dei dati: Modifica dei payload webhook durante il transito

Utilizzo delle librerie Svix (consigliato)

Raccomandiamo di utilizzare le librerie ufficiali Svix per la verifica, che gestiscono tutta la complessità per te:
Utilizza sempre il corpo grezzo della richiesta per la verifica. Se analizzi prima il JSON e poi lo trasformi in stringa, la firma non corrisponderà a causa di potenziali differenze di formattazione.

Verifica manuale

Se preferisci verificare le firme manualmente senza usare la libreria Svix, segui i passaggi seguenti.

Header della firma

Ogni webhook include questi header per la verifica:

Passaggi di verifica

1. Estrai gli header

2. Verifica il timestamp (previeni attacchi di replay)

Rifiuta i webhook con timestamp più vecchi di 5 minuti:

3. Crea il contenuto firmato

Concatena l’ID del webhook, il timestamp e il corpo:

4. Calcola la firma attesa

Usa HMAC-SHA256 con il tuo webhook secret:

5. Confronta le firme