SeaTable
  • Funciones
  • Plantillas
  • Soluciones
    • Marketing - – La próxima campaña de marketing está por llegar. Nada es más fácil que eso.
    • Gestión de proyectos - – Planificar, seguir y gestionar los proyectos del equipo de principio a fin.
    • Recursos Humanos - – Estructurar los procesos de RRHH para las nuevas contrataciones y la incorporación.
    • Distribución - Gestione toda su cartera de ventas y sus relaciones con los clientes en un solo lugar.
    • Desarrollo de software - Aumente la calidad y la velocidad de su equipo de desarrollo con SeaTable.
  • Soporte
    • Guía rápida - – Todo lo que necesita saber para poner en marcha SeaTable en minutos.
    • Área de ayuda - – Encuentre respuestas a sus preguntas y obtenga consejos sobre cómo sacar el máximo provecho de SeaTable.
    • Integraciones - – Conecte SeaTable con herramientas como Zapier, Integromat o n8n. O utilice la API de SeaTable.
    • Blog de SeaTable - – Aquí encontrará información sobre el producto, noticias y muchos ejemplos de cómo puede utilizar SeaTable de forma óptima.
  • Precios
  • Inicio de sesión
  • acceso
  • Registro
  • Menú Menú

Webhooks

  • ¿Qué son los webhooks y para qué sirven?
  • Creación y supresión de un webhook
  • Estructura de los datos del webhook
  • Procesamiento de un webhook con ayuda de PHP
  • La clave secreta de un webhook
  • Desactivación de un webhook en caso de error
  • Inicio
  • Ayuda
  • Scripts, API e integraciones
  • Webhooks
  • La clave secreta de un webhook

La clave secreta de un webhook

Si el destino de un webhook es de acceso público, debe garantizarse para las solicitudes entrantes que proceden del sistema de origen deseado. Con la ayuda de una clave secreta, se puede garantizar el origen de un webhook.

La idea de una clave secreta

Para crear un nuevo webhook, basta con introducir cualquier URL. La clave secreta también puede permanecer vacía. Sin embargo, si su URL de destino está disponible públicamente, debe establecer una clave secreta y validar este valor al procesar los webhooks. De lo contrario, cualquiera puede enviarle las peticiones correspondientes a esta URL de webhook, que serán procesadas por usted. Sin la clave secreta, el sistema de destino no tiene forma fiable de reconocer si el evento procede realmente de SeaTable.

Si especifica una clave secreta, el webhook tiene una clave adicional X-SeaTable-Signature-Headerque puede utilizarse para garantizar el origen del webhook. Mientras otra persona no conozca la clave secreta, no podrá enviarte eventos a través de webhook y encontrar la clave coincidente. X-SeaTable-Signature-Header para producir.

Si se establece una clave secreta, una solicitud de webhook tendrá, por ejemplo, el siguiente aspecto:

-- HEADER --
Content-Type: application/json
Content-Length: 625
X-Seatable-Signature: sha256=598b55485e7875def064746867ff220e79d7c75512fdb931a39e313af5abfe60
Connection: keep-alive
Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: python-requests/2.28.1
Host: example.com

-- CONTENT --
{
  event:update
  data: {
    dtable_uuid: 6c17f178ee724c109c68ecee364027fc
    row_id: Y_aYcE6wTo-IzGWb-oDmaQ
    op_user: 92d8f9b243f8437db0131c2536398403@auth.local
    op_type: create_row
    op_time: 1677595743.088
    table_id: 0000
    table_name: Table1
    row_name: ""
    row_data: []
  }
}

Cálculo de la clave secreta

La clave secreta es un secreto compartido entre SeaTable y el sistema receptor. SeaTable utiliza la clave secreta para calcular un valor hash del evento. El sistema receptor puede utilizar la clave secreta para calcular el contenido a partir del valor hash y compararlo con el contenido real. Si el contenido real no coincide con el contenido calculado a partir del hash, el webhook no debe ser procesado.

Validación de la firma

En cada lenguaje de programación, deberían existir las funciones correspondientes para poder validar dicha firma como corresponde. Puedes averiguar cómo sería esta comprobación en PHP en este artículo.

En el caso de Python, un examen podría tener este aspecto:

import hmac
from flask import Flask, request

app = Flask(__name__)


@app.route('/receive-seatable-webhook', methods=['POST'])
def receive-seatable_webhook():
    secret = 'secret'
    seatable_signature = request.headers.get('X-Seatable-Signature', '').replace('sha256=', '')

    signature = hmac.new(
        secret.encode('utf-8'), request.data, digestmod='sha256').hexdigest()

    signature_compare = hmac.compare_digest(signature, seatable_signature)

    if signature_compare:
        # do something
        pass

    return {'success': signature_compare}

¿Qué tan útil fue este artículo?
Actualizado el 28 de febrero de 2023
Procesamiento de un webhook con ayuda de PHPDesactivación de un webhook en caso de error
Contenido
  • La idea de una clave secreta
  • Cálculo de la clave secreta
  • Validación de la firma
Logotipo de SeaTable

Hágalo como miles de personas que utilizan SeaTable para desarrollar potentes procesos, poner orden en sus datos y completar sus tareas de forma más eficiente.

SeaTable en Linkedin SeaTable en Medium.com SeaTable en Instagram SeaTable en Twitter SeaTable en Github SeaTable en YouTube SeaTable en Docker Hub

Productos

  • Nube SeaTable
  • SeaTable Dedicado
  • Servidor SeaTable
  • Soporte

Soporte

  • Guía rápida
  • Área de ayuda
  • Plantillas
  • Integraciones
  • Foro
  • API para desarrolladores
  • Estado

Empresa

  • Sobre nosotros
  • Contratamos
  • Pulse
  • Contacte con
  • Blog
  • Pie de imprenta
  • Seguridad
  • Protección de datos
  • Condiciones de uso
  • EULA
Desplácese hacia arriba
  • Deutsch
  • English
  • Français
  • Português
  • Русский