2010-02-03 46 views
3

我在寫一個使用Facebook Connect的iPhone應用程序。測試時,你通常直接嵌入您的應用程序祕密到代碼,並設置了Facebook的這一呼籲:Facebook會話代理如何提高安全性?

session = [FBSession sessionForApplication:myApiKey secret:myAppSecret delegate:self]; 

然而,對於生產代碼它建議使用會話代理而不是把你的應用程序祕密到您的代碼:

session = [FBSession sessionForApplication:myApiKey getSessionProxy:myURL delegate:self]; 

我可以看到如何放棄你的「祕密」可能是一件壞事 - 它允許任何人採取似乎從你的應用程序發起的行動 - 但我不明白如何使用代理解決了那個問題。攻擊者可以簡單地將他的代碼指向你的會話代理。代理不會做任何類型的驗證,請求來自您的應用程序。換句話說,你並沒有放棄王國的鑰匙,但是你絕對會給予任何人一天的通行證!

那麼增加的安全性在哪裏?應用程序祕密爲您提供的代理會話是否有額外的權限?

回答