2011-07-20 104 views
99

假設我有一個名爲a.com的網站,並且在加載此網站的特定頁面時(比如頁面鏈接),我喜歡爲另一個名爲b.com的站點設置Cookie,然後重定向用戶到b.com如何爲另一個域設置Cookie

我的意思是,在負載a.com/link我想設置一個cookie爲b.com和重定向用戶b.com

我測試了它,瀏覽器實際上收到了來自a.com/link的cookie,但它並未將重定向請求上的cookie發送到b.com。這是正常的嗎?

我們可以爲其他域設置Cookie嗎?

+0

請注意,如果您使用URL參數在b.com上設置cookie,則任何人都可以強制b上的cookie值.com從任何網站。 – Julien

+0

使用b.com的iFrame設置了一個cookie;) – KDOT

回答

82

您無法爲其他域設置Cookie。允許這會帶來巨大的安全缺陷。

您需要讓b.com設置cookie。如果a.com將用戶重定向到b.com/setcookie.php?c=value

的setCookie方法腳本可以包含以下設置cookie,並重定向到正確的頁面上b.com

<?php 
    setcookie('a', $_GET['c']); 
    header("Location: b.com/landingpage.php"); 
?> 
+0

然而a.com可以在重定向到b.com時以標題的形式插入相同的數據,難道不是嗎?爲什麼這不會造成安全漏洞? – Coder

+1

@Coder,setcookie功能將導致cookie頭從b.com發送到瀏覽器。 a.com無法從b.com發送cookie標頭。 – qbert220

+0

是的,這是非常不安全的,但它確實有效。如果OP擁有a.com和b.com,並且cookie非常簡單,那麼也許它很好。 – rocketsarefast

4

你不能。這將是一個令人討厭的安全風險。

4

設置cookie進行另一個域是不可能的。

如果你想傳遞數據到另一個域,你可以把它編碼到url中。

a.com -> b.com/redirect?info=some+info (and set cookie) -> b.com/other+page 
+2

從url設置會話cookie是一種安全風險。通常會記錄網址,並允許攻擊者竊取用戶會話 –

12

接近你可以使用Iframe這個。 Facebook可能使用這種技術。你可以閱讀更多關於這個here。 Stackoverflow使用類似的技術,但與HTML5本地存儲,更多在此blog

+1

iframe完美適用於我的解決方案,只需將URL中的值包括在正常的獲取請求中,並使用cookie值從服務器響應 –

33

類似的熱門答案,而不是重定向到頁面,然後再返回,這將導致不良的用戶體驗,您可以設置圖像上域A

<img src="http://www.example.com/cookie.php?val=123" style="display:none;"> 

,然後是example.com在cookie.php你有下面的代碼域B:

<?php 
    setcookie('a', $_GET['val']); 
?> 

Hattip到Subin

+3

感謝您參考我的博客:) – Subin

+0

不錯的破解... :) – sotn

+3

要小心這可能是一個非常糟糕的想法。通過基本上讓任何人發送一個精心設計的GET請求來將該cookie設置爲他們想要的任何值,您都可以規避非常有意的cookie保護。我不知道你用這個cookie做了什麼,但我希望它不涉及銀行的餘額。 –

2

如果您有a.my-company.comb.my-company.com而不是隻有a.comb.com,您可以爲.my-company.com域發出Cookie - 它將被接受併發送到這兩個域。

+0

是否可以在a.my-company.com爲b.my-company.com創建一個cookie? –

1

看到RFC6265

的用戶代理將拒絕Cookie,除非域屬性 指定的cookie將包含原點 服務器範圍。例如,用戶代理將接受來自「example.com」的 域屬性或來自 foo.example.com的「foo.example.com」的cookie,但用戶代理將不接受具有 的cookie 「bar.example的域屬性。COM」或‘baz.foo.example.com’

注:出於安全原因,許多用戶代理配置爲拒絕對應 域屬性‘公共後綴’例如, 一些用戶代理會拒絕「COM」或「co.uk」中的域屬性。 (參見5.3節以獲取更多信息。)

但隨着圖像/ IFRAME作品上述解決辦法,但它不是因爲它不安全建議。

相關問題