当前位置: 首页 > 知识库问答 >
问题:

无法验证Twilio Authy webhook回调

胡翔
2023-03-14

我正在尝试为Authy OneTouch推送身份验证设置webhooks。我设法成功注册到one_touch_request_responded事件,从订阅调用中保存网络钩子签名密钥,但我仍然无法验证请求:任何攻击者都可以伪造虚假请求并轻松绕过2FA检查。

API文档让我很困惑,因为回调请求与所提到的格式不匹配(尤其是它们没有X-Authy-Signature头),并且只有以下头:

{
  host: 'XXX.ngrok.io',
  'user-agent': 'Authy-api-webhooks/1.0',
  'content-length': '2211',
  'accept-encoding': 'gzip',
  'content-type': 'application/json',
  'x-forwarded-for': '3.89.35.175',
  'x-forwarded-proto': 'http'
}

我还尝试验证JWT令牌的签名,但仍然无效(传入的请求:{“body”:“a\u JWT\u token”}):我总是得到无效的签名(使用相同的https://jwt.io/).

const jwt = require("jsonwebtoken");
jwt.verify(req.body.body, Buffer.from(MY_SECRET_KEY, "base64"), { algorithm: ["HS256"] });

检查webhook帖子回调真实性的正确方法是什么?

谢谢

共有1个答案

丌官向荣
2023-03-14

Twilio开发者布道者。

在我看来,您似乎已经找到了Authy-webhooks会话,您可以订阅该会话,以便更新用户使用Authy-api的各个部分。

为了获取OneTouch推送通知的网络钩子,您应该在Twilio控制台中Authy应用程序的推送通知设置下设置您的网络钩子URL。

设置网络钩子URL后,您会发现网络钩子事件传入您的应用程序以进行推送身份验证批准和拒绝。这些请求还将附带X-Authy-Signature-NonceX-Authy-Signature标头,您将能够使用此处解释的方法重新创建签名。

抱歉弄糊涂了,希望这能帮你弄清楚。

 类似资料:
  • 我将按照本指南使用Gupshup whatsapp https://www.Gupshup.io/developer/docs/bot-platform/guide/gupshup-bot-library-for-node构建NodejS bot 不确定这里出了什么问题。请告诉我如何解决这个问题?

  • 我看到这个问题已经被问了很多次,但是没有一个答案是有效的,所以我请求帮助和一些见解。 我使用laravel回声和redis广播事件。我的laravel回声服务器启动得很好,redis运行得很好。 重新加载网页时,在laravel echo服务器终端中出现以下错误: 我一直在做这件事,但没有什么能帮上忙。 这是我的 这里是我的 我的 这是我的larave echo服务器。json 当我触发事件时,我

  • 我的ldiff文件如下所示 用户密码在portal db中使用带有十六进制编码的MD5进行散列。还启用了pre-encoded-password为true,但没有帮助。 我的要求是我们有一个门户,其密码存储在MD5中的db中,使用十六进制编码,门户集成到ldap中,每次密码更改ldap都使用散列值更新,但上面的java程序根本不起作用。需要认真的帮助。 多谢了。

  • 我正在尝试使用专用通道验证laravel echo。每次我收到“无法验证到private-U详细信息。1”。“basket_details”这是通道名称,1是参数。 当我使用公共频道时,一切都很完美。因此,我认为auth部分存在一些问题。 这是我的错误日志 这是我的事件文件。 这是我的频道。php 这是我的js文件 这是我的BroadcastServiceProvider 这是我的laravel

  • 本文向大家介绍CKEditor无法验证的解决方案(js验证+jQuery Validate验证),包括了CKEditor无法验证的解决方案(js验证+jQuery Validate验证)的使用技巧和注意事项,需要的朋友参考一下 最近项目的前端使用了jQuery,表单的前端验证用的是jQuery Validate,用起来很简单方便,一直都很满意的。 前段时间,根据需求为表单中的 textarea 类