2015-01-14 118 views
0

我的網站使得像在客戶端暴露Facebook應用令牌是否不安全?

https://graph.facebook.com/v2.2?id=http://[URL]&format=json&access_token=[FB app id]|[FB app token] 

JS的Facebook圖形API請求獲得Facebook的股份數量爲每一個職位。應用程序ID是我的Facebook應用程序ID號,應用程序令牌是持久訪問令牌。

這兩個值都暴露在客戶端,儘管我的應用程序祕密是私有的,並且我生成了應用程序令牌服務器端。

這種做事方式不安全嗎?我是否需要將這些請求移到服務器端,並讓我自己的端點報告共享計數?

Facebook的documentation是有點混淆。它說:

此外,爲了安全,應用訪問令牌不應該被硬編碼到客戶端的代碼,這樣做會給大家誰加載網頁或反編譯你的應用程序完全訪問你的應用程序祕密,因此能夠修改你的應用程序。這意味着大多數情況下,您只會在服務器到服務器的調用中使用應用訪問令牌。

請注意,由於此請求使用您的應用程序密鑰,因此它絕不能是在客戶端代碼或可反編譯的應用程序二進制文件中創建的 。 重要的是你的應用程序祕密永遠不會與任何人共享。 因此,只能使用服務器端代碼進行此API調用。

我沒有對應用程序訪問令牌進行硬編碼,並且我隱藏了我的應用程序祕密。但我在客戶端使用應用程序令牌來調用服務器。我需要改變這個嗎?

回答

0

我覺得文檔(在https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens)是很清楚的,你引述他們還有:

此外,爲了安全,應用訪問令牌應該永遠不會被硬編碼到客戶端代碼 ,這樣做會爲每個加載網頁或反編譯應用程序的人提供對應用程序祕密的完全訪問權限,從而可以修改您的應用程序。這意味着大部分時間,只有在服務器到服務器的調用中,您纔會使用應用訪問令牌

我想知道你怎麼說這不是硬編碼的......如果是這樣,應用程序訪問令牌從哪裏來?

+0

感謝Tobi,我馬上改變我的代碼! –

相關問題