2012-03-14 28 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