2009-06-20 26 views
34

我去使用vBulletin 3.8論壇。登錄時,我使用螢火蟲查看設定的cookie。我看到這些cookie:爲什麼document.cookie不顯示該網站的所有cookie?

__utmb,__utmc,__utma,__utmz,bbsessionhash,vbseo_loggedin,bbpassword,bbuserid,bblastactivity,bblastvisit

他們都設置了一個值,並且,該域名是相同的。

但是,當我使用JavaScript來查看它們,就只看到了這些cookie:

__utmb,__utmc,__utma,__utmz,vbseo_loggedin,bblastactivity,bblastvisit

螢火蟲,我只看到這三個餅乾:bbsessionhash,bbpasword和bbuserid,這些都是實際設置的。 HTTPOnly在HTTPOnly列中。這是什麼意思,並且是我使用document.cookie在JavaScript中看不到這些cookie的原因?

回答

54

http://en.wikipedia.org/wiki/HTTP_cookie

餅乾,如果他們已經與 中HTTPOnly標誌派並不 客戶端程序,如 的JavaScript直接可見。從 視圖服務器的角度來看,只有 相對於正常 箱子的區別是,set-cookie頭 線中加入含有 字符串`僅Http'的新字段:

Set-Cookie: RMID=732423sdfs73242; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=.example.net; HttpOnly

當瀏覽器收到這樣一個 cookie時,它應該在以下HTTP交換中使用它作爲 ,通常在 中,但不能使其在 客戶端腳本中可見。 HttpOnly標誌不是任何標準的一部分,並沒有在所有瀏覽器中實現。

更新2017: 2009年以來大量的時間已經過去了,HttpOnly頭標誌成爲標準,在section 5.2.6 of RFC6265定義,在同一文件中描述的存儲語義(尋找「HTTP整個RFC文本中的「僅標誌」)。

no方式從「非HTTP」API訪問關於HttpOnly Cookie的任何內容。 JavaScript的。按照設計,既不能閱讀也不能寫這樣的曲奇。

+1

但是有沒有辦法從前端以某種方式訪問​​這些cookie? Cookie管理器Chrome擴展程序正在顯示它們,但document.cookie不是。 – 2016-07-18 09:49:01

相關問題