2012-03-14 46 views
0

在处理据称由Facebook发送的signed_request时,我应该检查引用者主机吗?据我所知,这只会在secret key受到威胁时有用。处理signed_request。我应该检查推荐人吗?

看起来好像所有的signed_requests都是从86.29.235.94寄出的。但它也可能是地区性的。

回答

1

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

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

您可能可以使用“issued_at”属性做一些事情,但我没有足够的测试知道它是否可以在所有请求中正常工作。

1

如果您的应用程序的秘密被泄露,接收非法signed_request可能是你最担心

攻击者也必须要得到有效的访问令牌的保持对于应用的用户之一,以便为注入一个signed_request来授予他们对你的应用程序的访问权限,不是吗?

+0

你说得对。 'access_token'是另一个节目。那么,没有太多需要担心引用主机。 – Gajus 2012-03-14 15:07:36

+0

(所以当然,不要让任何人获得应用程序的秘密) – Igy 2012-03-14 15:14:53