【发布时间】:2010-02-03 00:37:59
【问题描述】:
我正在编写一个使用 Facebook Connect 的 iPhone 应用程序。测试时,您通常会将您的应用程序密码直接嵌入代码中,并使用此调用设置 Facebook:
session = [FBSession sessionForApplication:myApiKey secret:myAppSecret delegate:self];
但是,对于生产代码,建议使用会话代理,而不是将您的应用密码嵌入到您的代码中:
session = [FBSession sessionForApplication:myApiKey getSessionProxy:myURL delegate:self];
我知道泄露你的“秘密”可能是一件坏事——它允许任何人采取看似源自你的应用程序的操作——但我看不出使用代理如何解决这个问题。攻击者可以简单地将他的代码指向您的会话代理。代理不会对请求来自您的应用程序进行任何类型的验证。换句话说,您不是在赠送王国的钥匙,而是向任何提出要求的人赠送一天通行证!
那么增加的安全性在哪里?应用程序密钥是否提供了代理会话没有的额外特权?
【问题讨论】: