爬蟲感悟-HTTP only
凱西
發(fā)布于 云南 2025-08-29 · 1327瀏覽 1回復(fù) 3贊

JavaScript為何無法讀取HttpOnly類型的Cookie?

在Web安全領(lǐng)域,Cookie是維持用戶會話的核心機制。然而,開發(fā)者常常會遇到一個現(xiàn)象:使用JavaScript的document.cookie只能獲取到部分Cookie,而那些標記了HttpOnly屬性的Cookie則無從尋覓。這并非JavaScript的“BUG”,而是一場精心設(shè)計的“安全隔離”。

HttpOnly是Cookie的一個關(guān)鍵安全屬性,由服務(wù)器在Set-Cookie響應(yīng)頭中設(shè)置。其設(shè)計初衷,就是為了防御一種常見的網(wǎng)絡(luò)攻擊——跨站腳本攻擊(XSS)。

XSS攻擊的核心是,黑客在網(wǎng)站中注入惡意腳本(例如一段JavaScript代碼)。當(dāng)其他用戶訪問該頁面時,瀏覽器會執(zhí)行這段惡意腳本。如果一個網(wǎng)站將用戶的敏感認證信息(如Session ID)存儲在普通Cookie中,那么惡意腳本就可以通過document.cookie輕易地竊取這些信息,冒充用戶身份進行操作。

HttpOnly屬性正是這道“防火墻”。一旦Cookie被標記為HttpOnly,瀏覽器就會實施一項嚴格的訪問控制策略:禁止所有前端的JavaScript代碼(無論是頁面內(nèi)嵌的腳本,還是來自外部的腳本)通過API(如document.cookie)讀取或修改該Cookie。

那么,這類Cookie還有什么用呢?它們依然能被瀏覽器正常使用。當(dāng)瀏覽器發(fā)起對同一網(wǎng)站的HTTP請求時,會自動帶上所有相關(guān)(包括HttpOnly)的Cookie。服務(wù)器可以安全地接收和處理這些Cookie來完成會話驗證、權(quán)限管理等后臺操作,因為它們始終在“瀏覽器-服務(wù)器”這條可信通道內(nèi)傳輸,不會被前端腳本接觸到。

簡而言之,HttpOnly通過強行分離“Cookie的使用權(quán)”(服務(wù)器端)和“Cookie的讀取權(quán)”(前端),為用戶會話安全構(gòu)建了一道至關(guān)重要的防線。它確保了即使前端代碼被完全攻破,攻擊者也無法竊取最關(guān)鍵的認證憑證。

凱西
瀏覽 1327
3
相關(guān)推薦
最新評論 1
贊過的人 3
評論加載中...

暫無評論,快來評論吧!