En esta guía, te explicaremos cómo puedes asegurarte de que la información que recibes de Treli es auténtica y no ha sido modificada por terceros utilizando el método de firma asimétrica con el algoritmo SHA256.
Paso 1: Entender la Firma Asimétrica y SHA256
Treli utiliza un método de firma asimétrica para garantizar la seguridad de la información que envía a tus URL de eventos. La firma asimétrica utiliza una clave secreta que solo tú y Treli conocen para generar un código de autenticación llamado firma HMAC. El algoritmo de hash criptográfico utilizado en este proceso es SHA256.
Paso 2. Obtén la Firma Asimetría
El encabezado Treli-Signature
incluido en cada evento contiene la firma de seguridad que debes verificar.
Paso 3: Prepara la cadena signed_payload
La cadena signed_payload
se crea concatenando la carga JSON (es decir, el cuerpo de la solicitud)
Paso 4: Determina la firma esperada
Calcula un HMAC con la función hash SHA256. Usa tu llave API (Como obtener tu llave API) como la clave, y la cadena signed_payload
como el mensaje.
$secret = "tu_llave_api";
$headers = getallheaders();
$payload = file_get_contents("php://input");
$calculatedSignature = hash_hmac('sha256', $payload, $secret);
if ($headers['Treli-Signature'] == $calculatedSignature) {
// La firma es válida, los datos son auténticos.
// Procede a procesar los datos del webhook.
} else {
// La firma no coincide, los datos pueden ser no confiables.
// Maneja esta situación según tus necesidades.
}
Paso 5: Compara la firma
Compara la firma en el encabezado con la firma esperada.