![](/img/trans.png)
[英]httpOnlyCookies, does it only affect cookies created on the server?
[英]Does setting HttpOnly on cookies on the server side affect cookies created in the browser?
我正在管理服務器,一直在考慮為Cookie設置HttpOnly。
雖然我在服務器端和客戶端都沒有與之交互的cookie,但是是否為所有cookie啟用此選項會阻止客戶端生成的cookie在后續頁面加載時被訪問?
為了澄清,這將被設置為服務器選項。 我正在使用Apache,因此類似於: Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
在Apache配置中Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
。
此外,問題是基於使用cookie進行數據存儲。 LocalStorage
不在問題的上下文范圍內,即使它是存儲純粹在客戶端使用的數據的高級方法。
為所有cookie啟用此選項是否會阻止客戶端生成的cookie在后續頁面加載時被訪問?
是。 JS無法訪問服務器響應使用HttpOnly
標記的cookie的值,也無法向其中寫入新值。
但是,我還沒有發現當JS嘗試寫一個消息時到底發生了什么,瀏覽器似乎用本地存儲的,只能由客戶端腳本訪問的一個消息遮蓋了HTTP發送的消息。 雖然我不會依賴此行為,但是寫入可能會被忽略。 在較舊的瀏覽器中,似乎存在一些僅HTTP cookie被寫入的錯誤。
但是,無法為所有 cookie啟用HttpOnly
。 您必須分別在每個交換的cookie上設置它,因此僅對服務器確實通過該標志發送給客戶端的cookie啟用此選項。
因此,如果將Apache配置為在所有傳出的Cookie上啟用該標志,則仍然取決於服務器應用程序是否鏡像客戶端發送的所有Cookie。 通常不會,並且僅發送它確實要設置的cookie(就其本身而言,將在服務器上使用)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.