问题描述
我正在尝试为Authy OneTouch推送身份验证设置Webhooks。我设法成功注册了one_touch_request_responded
个事件,从订阅调用中保存了Webhook签名密钥,但是我仍然无法验证请求:任何攻击者都可以伪造伪造的请求并轻松绕过2FA检查。
API documentation令我感到困惑,因为回调请求与提到的格式不匹配(特别是它们没有X-Authy-Signature
头),并且只有以下头: / p>
{
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令牌的签名,但仍然无济于事(收到POST
请求:{"body":"a_jwt_token"}
):我总是得到无效的签名(与https://jwt.io/相同) )。
const jwt = require("jsonwebtoken");
jwt.verify(req.body.body,Buffer.from(MY_SECRET_KEY,"base64"),{ algorithm: ["HS256"] });
检查Webhook POST回调的真实性的正确方法是什么?
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)