簡體   English   中英

Facebook Javascript SDK安全問題?

[英]Facebook Javascript SDK security issue?

我正在嘗試將facebook auth嵌入到我的應用程序中。 我最初的努力是登錄瀏覽器並獲取代碼。 我將此代碼傳遞回我的api並獲取訪問令牌(與服務器保持一致)並通過我的服務器將我的所有請求路由到FB Api。 因為我的客戶端沒有信息可以將FB作為我的應用程序進行授權調用,因此對我來說似乎完全安全。

然而,我一直在尋找FB Javascript SDK以避免編寫用於對話框打開和關閉的代碼,並注意到它允許我getLoginStatus並返回訪問令牌。 此外,我在他們的文檔中查看了FB auth流程,並且他們說客戶端 - 服務器混合流程可以做到服務器實際上將“長期訪問令牌”返回給客戶端並建議我使用HTTPS(公平)。

現在這一切讓我想到這是否是一個安全問題。 作為潛在的黑客,我不能將一些javascript注入到用戶的網頁中
a)創建一個getLoginStatus並獲取訪問令牌或
b)通過向我的api服務器發出請求並獲取訪問令牌來獲取訪問令牌
然后使用它發布(假設用戶授權我的應用程序這樣做)到Facebook,好像我的應用程序正在做它?

我是一個安全新手,可能會在這里忽略一堆東西,但有人可以幫我理解我所缺少的東西嗎?

提前致謝!

PS:我知道我可以啟用進一步的安全性,以確保每次我想要提出客戶端無法做的請求時我都需要應用程序秘密,因為客戶端永遠不會提供該信息。

我不是安全專家,只是一些想法:在你的問題中,你假設黑客以某種方式使用惡意軟件將腳本注入用戶瀏覽器的網頁,然后該腳本與客戶端的數據交互。

現在,如果我們想象這實際發生了並且邪惡的腳本可以完全訪問網頁數據,即使您在客戶端上沒有訪問令牌,也會阻止惡意腳本向您的服務器發出請求並與之交互facebook通過你的服務器?

此外,如果用戶打開Facebook本身並在那里進行授權,可以將惡意腳本注入到Facebook頁面並代表用戶執行任何操作,只需將請求發送到Facebook服務器即可。

通過這種方式,我認為如果您描述的情況發生了,那么存儲訪問令牌客戶端是否真的無關緊要 - 無論如何,邪惡的腳本將能夠完成它的工作。

實際上,如果您擔心安全性 - 首先仔細檢查所有與身份驗證和安全性相關的facebook文檔,並遵循他們的建議。 第二 - 搜索常見的已知攻擊媒介以及如何避免應用程序中的安全風險的建議。 如果用戶的計算機上已經有惡意軟件可以改變瀏覽器的行為(比如在頁面中注入其他腳本),那么你可能無法做很多事情。

如果您的facebook應用程序設置上的有效重定向URI等效於您的站點URL,則只能獲取訪問令牌。

此外,它需要權限才能使用facebook access_token發布。

您可以訪問https://developers.facebook.com/tools/explorer/查看API調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM