使用Webhook机密的要点

时间:2019-09-01 15:13:11

标签: heroku webhooks

对于heroku应用程序,我有一个用于“ api:release”的网络挂钩。

即使我为Webhook设置了机密,我的Webhook应用程序仍然会收到该钩子。

那么设置可选密码有什么意义呢?

1 个答案:

答案 0 :(得分:1)

任何人都可以访问您的Webhook并触发您的构建,因为它是没有身份验证的HTTP终结点。为了防止脚本/滥用者开始大量构建,可以使用秘密。

当接收到Webhook时,发送者必须包括一个令牌,可以通过将其与秘密进行比较来验证此令牌。如果令牌匹配,则假定有效的客户端发送该令牌是相同的。如果令牌与uo不匹配,则您可以忽略该请求,从而阻止从不受信任的源启动的不必要的构建。

有关设置机密的更多详细信息:https://devcenter.heroku.com/articles/app-webhooks#step-3-subscribe

要比较校验和,可以使用以下代码段:

crypto.createHmac('sha256', '12345').update(Buffer.from(req.rawBody)).digest('base64');

并将其与Heroku-Webhook-Hmac-SHA256标头值进行比较。