在处理Facebook上发送的signed_request
时,我应该检查引荐来主持人吗?据我所知,这只有在secret key
受到损害时才有用。
看起来所有signed_requests
都是从86.29.235.94
发送的。但它也可能是区域性的。
答案 0 :(得分:1)
如果您的应用机密被泄露,接收无效的signed_request可能是您最不担心的
攻击者还必须为您的某个应用用户获取有效的访问令牌,以便注入signed_request以授予他们访问您的应用的权限,不是吗?
答案 1 :(得分:1)
不,引用者是不可预测的。没有明确的规则,可能会有所变化。此外,一些用户代理甚至不发送一个。
遗憾的是,signed_request方案不允许数据机密性(通过加密)或源完整性,但您确实获得了数据完整性,因此您至少可以确保Facebook在某些时候生成了有效的signed_request。为了验证这一点,您只需要检查签名。这并不能保证你不会成为重播攻击的受害者,但我认为没有人能解决这个问题。
您可以使用“issued_at”属性作为nonce执行某些操作,但我没有经过足够的测试来知道它是否在所有请求中都能正常工作。