2015-09-26 19 views
-2

如果我登錄到Facebook.com,然後在另一個選項卡中登錄到使用一些Facebook小部件的域x.com,那麼在x.com上安裝的Facebook小部件如何知道我已登錄Facebook並且不需要重新驗證使用它?Facebook Widget如何安裝在不同的域名上知道我已登錄到Facebook.com?

看來,從x.com腳本能夠讀取在Facebook.com下創建的cookie,並且違背cookie不能跨域讀取的共識。 Facebook如何規避共識?

+1

除了Sulliman在他的回答中已經說過的話,JS SDK當然也可以向Facebook的服務器發出跨域請求來確定用戶的登錄狀態。如果您想知道如何工作,您的研究關鍵字是CORS。 – CBroe

+0

似乎包含跨域服務器數據,服務器會話,客戶端會話和瀏覽器cookie,持久性和受控亂交。無論在哪裏「陳述跨域cookie不能共享」都需要被駁回,我在上面的答案中引用了@Ludovic引用。 – Guessed

+0

這很簡單,只需設置第三方Cookie,這是廣告業多年來一直在做的事 - 絕對沒有什麼特別的。這並不意味着cookie實際上跨越了域邊界 - 它仍然只能從它設置在(或「從」)的域中訪問。 – CBroe

回答

3

大多數情況下,您所談論的小部件實際上只是(或<object>)標籤。所以,你只是在另一個頁面上看到他們真實域名的一部分。 Facebook頁面可以訪問你所有的Facebook cookies,所以他們可以識別你並登錄你。

出於明顯的安全原因,「x.com」無法訪問這些cookie。

+0

我注意到使用'