CP-02 — Firma inválida se rechaza
El endpoint es público: cualquiera puede mandarle un POST. Lo único que separa
un mensaje real de uno inventado es la firma X-Hub-Signature-256.
Pasos
- Envía un POST con cuerpo válido pero sin cabecera de firma.
- Envía otro con una firma inventada.
curl -s -o /dev/null -w "sin firma: %{http_code}\n" \
-X POST https://crm-api.chewcud.tech/webhooks/whatsapp \
-H "content-type: application/json" \
-d '{"object":"whatsapp_business_account","entry":[]}'
curl -s -o /dev/null -w "firma falsa: %{http_code}\n" \
-X POST https://crm-api.chewcud.tech/webhooks/whatsapp \
-H "content-type: application/json" \
-H "X-Hub-Signature-256: sha256=0000000000000000000000000000000000000000000000000000000000000000" \
-d '{"object":"whatsapp_business_account","entry":[]}'
Resultado esperado
- Las dos peticiones se rechazan.
- No se crea ninguna conversación ni mensaje.
- Queda registro del intento:
SELECT provider, signature_ok, error, received_at
FROM webhook_events
ORDER BY received_at DESC LIMIT 5;
signature_ok debe ser false en ambas.
Criterio de aceptación
- Sin firma se rechaza
- Firma falsa se rechaza
- No se creó conversación ni mensaje
- El intento quedó con
signature_ok = false