Webhook 安全性:HMAC 签名

Webhook 安全性:HMAC 签名

使用 HMAC-SHA 256(基于 SHA 256 的哈希消息认证码)保护您的项目、任务和问题的 Webhook。Zoho Projects 提供使用 HMAC-SHA 256 保护 Webhook 的选项,这是一种行业标准的哈希机制,可确保并维护 Webhook 的真实性和完整性。

 

HMAC 有助于检查:

 

  1. Webhook 请求是否由 Zoho Projects 发送(密钥必须仅由 Zoho Projects 和接收应用程序知道)。

  2. Webhook 内容是否在传输过程中被篡改。

 

为什么要保护 Webhook?

 

Webhook 是一个应用程序向另一个应用程序发送的 HTTP 请求,用于提供实时数据。在安全攻击中,攻击者可以通过发送欺诈性 Webhook 并提取敏感数据来轻松冒充合法提供商。因此,Webhook 需要安全保护,以确保您的应用程序仅监听来自可信来源的真实事件,而不会被虚假或有害的请求所欺骗。

 

优势:

  • 避免报告中出现错误数据

  • 避免未经授权的更新

  • 避免安全漏洞

 

启用 Webhook 安全性

 

用户可以在添加或编辑 Webhook 时启用 Webhook 安全设置。

 

  1. 前往“设置”>“自动化/问题跟踪器”>“Webhook”。

  2. 对于新建的 Webhook,请在 Webhook 表单中填写详细信息并切换“安全设置”。对于现有的 Webhook,请选择要启用安全性的 Webhook。

  3. 输入 HMAC 密钥。用户也可以点击“生成”按钮生成 HMAC 密钥。

  4. 点击“保存”。

 

注意: HMAC 密钥长度应为 16 到 128 个字符。

 

Zoho Projects 中的 Webhook 安全性如何运作?

 

当从 Zoho Projects 发送 Webhook 时,请求标头中会包含一个名为 X-ZP-WEBHOOK-SIGNATURE 的 HMAC 签名。收到 Webhook 请求后,接收应用程序将使用相同的密钥生成 HMAC 签名,并将结果与请求头中的值进行比较。如果值匹配,则数据合法;否则,数据已被篡改。

 

生成 HMAC 签名

 

Zoho Projects 使用 HMAC-SHA256 算法计算 Webhook 有效负载的签名,并将结果以 base64 格式发送到请求头中。以下是示例数据的说明:

 

payload

  {{"requests":{"request_name":"Test Name"},"notifications":      {"operation_type":"RequestSigningSuccess"}}

secret_key

  thisisthesamplekeyfortestingpurposes

base64encode(HMAC SHA-256(payload+secret_key))

  drbSrM4H816RYKpZiRBLddUa0yHaTrwjtY04sIZFZus=

 

下图展示了 webhook 请求头(HMAC 头)的样子:

 

验证接收应用程序中的 HMAC 签名

  1. 您必须将有效负载读取为字符串,以避免以 JSON 格式读取时密钥顺序发生改变。

  2. 使用密钥计算有效负载的 HMAC SHA-256 哈希值,并对结果进行 Base64 编码。

  3. 将步骤 2 中获得的值与接收到的 HMAC 标头 (X-ZP-WEBHOOK-SIGNATURE) 的值进行比较。如果存在不匹配,则拒绝 webhook 请求。


以下是一个用于验证 HMAC 签名的 Java 代码片段示例:

    • Related Articles

    • 用户Webhook

      Webhooks允许您向第三方应用程序发送自动化的 HTTP 通知。当事件或触发器发生时,Webhooks 会将实时数据从一个应用程序传输到另一个应用程序。您可以使用 Webhooks 定义自己的 HTTP URL 并将其与工作流规则关联。要了解更多关于 Webhooks 的信息,请访问 WebHooks.org。使用 Zoho Projects,您可以创建专门用于用户自动化的 Webhooks。 功能可用性:最新用户型企业计划。 配置 Webhooks 导航至 ...
    • Webhook功能介绍

      使用Webhooks功能可以帮助你自动的将Zoho Projects中的信息发送给第三方应用程序,你可以通过配置自己的HTTP URL,通过自定义的业务规则将Zoho Projects中的数据同步到其他软件。 功能支持的版本: 企业版.  Webhooks的作用 自动同步任务字段到第三方 自动接收任务中的活动通知 为任务更新自定义邮件邮件提醒  配置Webhooks 点击 界面右上角的  > 任务自动化 > Webhooks. 点击 添加Webhooks ...
    • 为任务设置Webhook

      Webhook 有助于从 Zoho Projects 自动向第三方应用程序发送 HTTP 通知。Webhook 允许您在事件发生时将实时数据从一个应用程序发送到另一个应用程序。使用 Webhook,您可以配置自己的 HTTP URL 并将其与业务规则关联。要了解更多关于 Webhook 的信息,请参阅 WebHooks.org. Webhook 的优势 自动更新任务字段。 自动接收任务中发生的活动的通知。 自定义任务更新邮件提醒。 配置 Webhook 导航至 > 任务自动化 > ...
    • 为项目设置 Webhook

      Webhook 允许用户向第三方应用程序发送自动 HTTP 通知。当事件或触发器发生时,Webhook 会将实时数据从一个应用程序传输到另一个应用程序。您可以定义自己的 HTTP URL,并使用 Webhook 将其与工作流规则关联。要了解更多关于 Webhook 的信息,请参阅 WebHooks.org。 配置 Webhook 导航至 > 项目自动化 > Webhook。 点击“添加 Webhook”。 在 Webhook 页面中,指定所有必要参数。 点击“保存”。 Webhook ...
    • Zoho Projects 中的开发者空间 - 概念

      Zoho Projects 中的开发者空间允许开发者编写代码与 Zoho Projects 交互。它可以自定义和自动化项目及其模块。开发者还可以创建扩展程序、访问 API 并建立服务挂钩来触发响应。 假设您是一家建筑公司的项目经理。所有设计草案都必须经过您的批准才能开始施工文件。您希望使用 Zoho Projects 自动化此草案审批流程。 ...