我在facebook messenger平台上开发聊天机器人.我浏览了Facebook文档,无法找到如何保护我webhook的随机通话.
例如,如果用户可以使用我的机器人购买东西,那么知道某人的userId的攻击者可以通过拨打我的webhook来开始放置未经授权的订单.
我有几个关于如何保护这个的想法.
1)将我的api白名单只用于来自facebook的电话.
2)使用回发调用创建类似CSRF令牌的东西.
有任何想法吗?
Facebook当然已经实施了一种机制,您可以通过该机制检查对您的回调URL的请求是否真实(其他一切都只是疏忽) - 请参阅https://developers.facebook.com/docs/graph-api/webhooks #adceupdates:
HTTP请求将包含一个
X-Hub-Signature标头,其中包含请求负载的SHA1签名,使用app secret作为密钥,并带有前缀sha1=.您的回调端点可以验证此签名以验证有效负载的完整性和来源请注意,计算是在有效负载的转义unicode版本上进行的,使用小写十六进制数字.如果您只是根据解码的字节进行计算,最终会得到不同的签名.例如,字符串
äöå应该转义为\u00e4\u00f6\u00e5.
| 归档时间: |
|
| 查看次数: |
1287 次 |
| 最近记录: |