2010-03-11 153 views
0

我工作的公司有四個域,我試圖設置cookie,因此可以在所有域中生成和跟蹤一個cookie。從閱讀這裏的各種帖子我認爲這是可能的。跨域cookie跟蹤

我在一個網站上設置了一個子網域,爲所有四個網站提供一個cookie和1 * 1像素的圖像。

但我不能在其他網站上得到這個工作。

如果任何人都可以澄清:

  1. 它的可能嗎?
  2. 如果我錯過了一些顯而易見的東西,或者鏈接到一個很好的例子?

我想用PHP做這個服務器端。

謝謝

回答

1

你有問題,由於Internet Explorer及其隱私的東西? Session variables are lost if you use FRAMESET in Internet Explorer 6

回到我以前的互聯網時代,當IE6第一次出現時,我們不得不實施這個,因爲它破壞了我們的一些跟蹤。令人驚訝的是,你所要做的只是僞造它,一切正常。

您在正確的軌道上,我們有一個域託管跟蹤CGI,服務1x1透明像素和跟蹤用戶訪問的頁面。然後我們有了一個自定義分析器,可以將這些數據與Apache日誌相結合,並通過我們的網站動態創建用戶流量模式圖。這是使用Graphviz包中的點。

0

如果你只是想做統計數據,這種事情是非常簡單的,但如果你實際上試圖在域之間保存用戶數據,你必須做更復雜的事情。

設置跨域Cookie的最佳方式是確保您的所有網站都是一個主域的子域,例如initech.com。因此,您的一個網站site1.initech.com將cookie設置爲「.initech.com」的域名,並且工作正常。

這可能是一個問題,如果你的網站是完全不同的領域,但。

您不必嘗試設置每個網站都可以訪問的一個cookie,您需要做的是確保每個網站都有自己的原始cookie的完全副本。因此,讓您的網站site1.com爲自己設置Cookie,並將三個1x1 gif或AJAX呼叫或其他內容輸出到site2.com,site3.com和site4.com,並將相同的cookie設置爲相同的值。

這將是很難做到安全,可靠;)

要確保有人不能任意設定的Cookie在你的域名,你會HABE通過cookie值的圖像標籤上的哈希。如果要設置的cookie是「mycookieval」,還要通過md5(「mycookieval」。「somesecretstring」。$ _ SERVER ['REMOTE_ADDR'])。這可能是不好的,因爲它可能允許攻擊者將相同的cookie設置爲相同的IP地址,或者可能強制哈希生成。

無論何時設置cookie,並且讓其他三個站點檢查其有效性,您都可以通過將記錄插入後端數據庫來彌補這一點。

+0

它不是最好的方式 - 它是**唯一的方式**,即使如此,它也會因瀏覽器配置而失敗。使用SSO機制來實施解決方案(您實際上不必詢問用戶名和密碼),並在每個域上擁有** ** Cookie的副本** – symcbean 2010-03-11 18:31:28