处理signed_request。我应该检查推荐人吗?

时间:2012-03-14 14:24:43

标签: facebook facebook-graph-api

在处理Facebook上发送的signed_request时,我应该检查引荐来主持人吗?据我所知,这只有在secret key受到损害时才有用。

看起来所有signed_requests都是从86.29.235.94发送的。但它也可能是区域性的。

2 个答案:

答案 0 :(得分:1)

如果您的应用机密被泄露,接收无效的signed_request可能是您最不担心的

攻击者还必须为您的某个应用用户获取有效的访问令牌,以便注入signed_request以授予他们访问您的应用的权限,不是吗?

答案 1 :(得分:1)

不,引用者是不可预测的。没有明确的规则,可能会有所变化。此外,一些用户代理甚至不发送一个。

遗憾的是,signed_request方案不允许数据机密性(通过加密)或源完整性,但您确实获得了数据完整性,因此您至少可以确保Facebook在某些时候生成了有效的signed_request。为了验证这一点,您只需要检查签名。这并不能保证你不会成为重播攻击的受害者,但我认为没有人能解决这个问题。

您可以使用“issued_at”属性作为nonce执行某些操作,但我没有经过足够的测试来知道它是否在所有请求中都能正常工作。