首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Twilio Webhooks,验证了真正的twilio请求

Twilio Webhooks,验证了真正的twilio请求
EN

Stack Overflow用户
提问于 2017-01-05 09:40:03
回答 1查看 1.9K关注 0票数 3

我正在为我们的解决方案评估Twilio Webhooks。它很有魅力。我想检测和验证它是真正的TWILIO调用,而不是BOT/ WebHook,它调用我们的WebHook( IPN侦听器,我们为Twilio WebHook侦听器指定的URL )。

我不喜欢检查UserAgent值包含"TwilioProxy“的想法。你推荐更好的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-05 11:30:05

两位开发人员在这里传道。

你绝对可以验证web钩子是真正的Twilio请求

对于每个web钩子请求,Twilio都会发送一个带有签名的X-Twilio-Signature头。签名使用以下方法创建:

  1. Twilio将其请求组装到应用程序,包括最终URL和任何POST字段(如果请求是POST)。
  2. 如果您的请求是POST,Twilio将所有POST字段按字母顺序按名称排序,并将参数名称和值连接到URL的末尾(没有分隔符)。
  3. Twilio接受得到的字符串(包含查询字符串和所有POST参数的完整URL ),并使用HMAC-SHA1 1和您的AuthToken作为键对其进行签名。

要验证签名,您需要:

  1. 从协议(https.)获取为您的电话号码或应用程序指定的请求URL的完整URL。通过查询字符串的末尾(?之后的所有内容)。
  2. 如果请求是POST,按字母顺序对所有POST参数进行排序(使用Unix风格的区分大小写的排序顺序)。
  3. 迭代已排序的POST参数列表,并将变量名称和值(没有分隔符)追加到URL字符串的末尾。
  4. 使用您的AuthToken作为键用HMAC-SHA1 1对结果字符串进行签名(请记住,您的AuthToken的情况很重要!)
  5. Base64对结果的哈希值进行编码。
  6. 把你的散列和我们的比较,在X签名头中提交。如果他们匹配,那你就可以走了。

这都是在我们的安全页上用例子描述的。如果您正在使用我们的官方辅助图书馆之一,那么将有一种方法来验证这个已经内置的方法。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41481573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档