Vai al contenuto principale
Ogni notifica webhook inviata da xMenu include una firma di sicurezza che ti permette di verificarne l’autenticità.

Header di Sicurezza

Ogni richiesta webhook contiene il seguente header:
X-Xmenu-Signature: <hmac-sha256-signature>
La firma è un hash HMAC-SHA256 del payload della richiesta, calcolato utilizzando il tuo Webhook Secret.

Webhook Secret

Puoi trovare il tuo Webhook Secret nel pannello ristorante alla voce Strumenti > Accesso API.

Validazione della Firma

Per verificare che una notifica webhook sia autentica:
  1. Recupera l’header X-Xmenu-Signature dalla richiesta in arrivo
  2. Calcola l’hash HMAC-SHA256 del body della richiesta usando il tuo Webhook Secret
  3. Confronta l’hash calcolato con la firma presente nell’header
  4. Rifiuta la richiesta se le firme non corrispondono

Esempi di Codice

<?php
$webhook_secret = 'your-webhook-secret';
$req_headers = getallheaders();
$signature = $req_headers['X-Xmenu-Signature'];
$payload = file_get_contents('php://input');
$calc_hmac = hash_hmac('sha256', $payload, $webhook_secret);

if ($signature !== $calc_hmac) {
    header('HTTP/1.0 401 Unauthorized');
    exit('Webhook signature is not valid!');
}

$data = json_decode($payload);
// Elabora la notifica webhook
Valida sempre la firma del webhook prima di elaborare qualsiasi dato. Non fidarti mai delle richieste webhook in arrivo senza verifica.