0

我安裝了一些Chrome擴展,當我在某個域上時彈出一個模式框。Chrome擴展程序生成cookie,但沒有可見的HTTP請求?

如果我單擊該框中的按鈕,我會在Chrome開發人員工具的Network選項卡中看到該擴展會向網站發出HTTP Post請求。

該請求包含來自該域的一些請求Cookie:A,B,C,D。 和響應來自域的Cookie:A,B,C-沒有D.

當請求完成(並且擴展名完成其「魔術」)時,我發現cookie D的值已經改變,甚至儘管D不在響應中。我測試了幾次。

這怎麼可能?擴展程序可以在隱藏於網絡選項卡中的背景中創建一些內容,這會導致域中的Cookie D發生更改?

我希望能夠捕獲和記錄這種Cookie D代行爲,並且不知道該怎麼做。

回答

1

使用chrome.cookies API,Chrome擴展程序可以操作存儲在瀏覽器中的cookie,而無需執行HTTP請求。該擴展將需要cookies permission來訪問此API。

您將無法捕獲或截取擴展程序對chrome.cookies API的調用。

此外,通過chrome.webRequest API,Chrome擴展可以修改請求標頭,包括髮送或接收的Cookie,而不直接更改存儲在瀏覽器中的Cookie。該擴展將需要webRequest and webRequestBlocking permissions進行此類更改。

+0

(1)我認爲最初由域創建的cookie只能由域進行修改。那麼這是一種「黑客」? (2)您是否在說擴展可能會執行您提到的兩個選項中的任何一個來實現此目的? (3)「權限」是什麼意思是什麼給用戶?他只是允許瀏覽器安裝擴展,對吧?他不需要單獨啓用每個權限。 (4)是否有任何方法阻止Cookie修改? (5)Firefox/Safari擴展可以與cookie一樣嗎? – rockyraw

+0

此外,是否有任何cookie嗅探工具,可以捕獲它,如果不是鉻開發。工具? – rockyraw

+1

@rockyraw,1)擴展完全控制。它旨在用於擴展。 2)擴展可以兼得/兼而有之。 'chrome.cookies'對存儲的cookie進行更改。 'chrome.webRequest'可以在請求啓動之後,但在它被髮送到服務器之前,以及從服務器接收到數據之前,但在瀏覽器處理數據之前,直接對Web請求進行更改。 3)在Chrome中,用戶被顯式提醒某些權限。有關詳細信息,請參閱[權限警告](https://developer.chrome.com/extensions/permission_warnings)。 (續) – Makyen