2015-10-21 171 views
0

我的OAuth 2.0應用程序獲得的顯示訪問令牌是否存在安全隱患?也許不一定會顯示,但甚至可以將它反映到網站的源代碼中,用戶本質上「可以找到」它。假設一切都是HTTPS。顯示OAuth訪問令牌安全嗎?

例如:我有一個網站,我想讓人們用Facebook登錄。登錄後,我會從身份提供商或Facebook PHP SDK獲取FB API訪問令牌。此令牌與剛剛登錄的用戶綁定。我想通過顯示其個人資料圖片讓用戶感到賓至如歸,是否安全地呈現類似於以下內容的HTML?

<img src='https://graph.facebook.com/me/picture?access_token=USERS_ACCESS_TOKEN'> 

編輯: 我知道有用於顯示個人資料圖片等選項,我不一定要求一個更好的方式來做到這一點。我對這些訪問令牌需要採取的安全更感興趣。我所看到的大部分資源似乎都沒有提到它的任何內容。

+0

您絕不應該在源代碼中輸出訪問令牌。您獲取配置文件映像的示例並不需要它,到目前爲止,您還沒有描述任何其他具體的用例,這是必需的。如果你想進行客戶端API調用,那麼使用JS SDK,並讓它處理令牌。 – CBroe

回答

1

訪問令牌應具有與其關聯的最小權限集,即僅足以實際顯示用戶圖片。在那種情況下,沒有增加風險。 XSS攻擊,因爲在攻擊者設法竊取會話cookie和/或令牌的情況下,每個顯示圖片的解決方案都會涉及相同的風險。

只有當訪問令牌具有與其關聯的附加權限而不用作前端的一部分時,從安全角度來看,它將不太可取,以便將其顯示在前端。

+0

感謝您的回答。這符合我的想法,無論該令牌是包含在JS對象中還是實際上位於DOM上,我們唯一真正擔心的是某種XSS攻擊(除了類似於過度使用肩膀觀看)。我不確定JS SDK如何處理這些令牌,但我必須假設某人是否有權訪問腳本以訪問這些令牌。 –

+0

我不會將這個標籤貼上更安全但更隱蔽的標籤,也就是說不太方便將其刪除或將其保存在某個意外的地方,但對確定的攻擊者來說當然仍然可行。 –

-1

啊,我明白你在做什麼。而不是oauth令牌這樣做:http://graph.facebook.com/1477079525902964/picture和ta-da

+0

我也許應該在問題中澄清這個問題(我會編輯),但我不一定在尋找如何顯示個人資料圖片。我知道有幾種不同的方法可以做到這一點,我對使用令牌需要採取的安全措施感到好奇。你有一個很好的資源表明他們不應該以純文本呈現嗎? –

+0

從我看到的這裏有幾個可能是安全問題:https://developers.facebook.com/docs/facebook-login/permissions/v2.5(ads_management,user_photos,publish_actions)我認爲經驗法則是沒有。沒有人想要承擔任何責任。如果它在頁面上,我可以創建一個XSS攻擊來定位你的頁面,並將它們從HTML中提取出來。 –

0

那麼,如果OAuth令牌綁定到用戶會話,那麼攻擊者竊取用戶cookie(例如通過XSS)並且使用它以及訪問令牌代表他的應用程序中的賬戶在他的FB上進行一些操作。我會說在安全相關的東西的經驗法則是隻披露你真正必須的信息,沒有別的。