1. ホーム
  2. javascript

[解決済み] なぜdocument.cookieはサイトのすべてのcookieを表示しないのですか?

2023-02-22 11:35:23

質問

私は、vBulletin 3.8を使用するフォーラムに行きます。私がログインするとき、私はどのようなクッキーが設定されているかを見るためにfirebugを使用します。私はこれらのクッキーを見ます。

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

すべて値が設定されており、ドメインは同一でした。

しかし、JavaScriptで表示すると、これらのCookieしか表示されませんでした。

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

firebugでは、実際に設定されたbbsessionhash、bbpasword、buserid、これら3つのCookieのみが表示されます。列のHTTPOnlyです。これは何を意味するのでしょうか。また、JavaScriptでこれらのクッキーを見ることができない理由は document.cookie ?

どのように解決するのですか?

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

クッキーは、以下のようなクライアント側のプログラムから直接見えるものではありません。 クライアント側のプログラム(例えば JavaScript などのクライアント側プログラムからは直接見えません。 直接見ることはできません。サーバから見ると サーバから見ると サーバーから見ると、通常の場合との違いは サーバーから見ると、通常の場合と異なるのは、set-cookieヘッダー 行に新しいフィールドが追加されることです。 という文字列を含む新しいフィールドが追加されることです。

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

ブラウザがこのような クッキーを受け取ると、次のHTTP交換で通常通り 次のHTTP交換で通常通り使用することになっています。 しかし クライアント側のスクリプトには表示されません。 HttpOnly フラグはどの標準にも属しておらず、全てのブラウザで実装されているわけではありません。

2017年からの更新です。 2009年から多くの時間が経過しており HttpOnly ヘッダフラグが標準化されました。 セクション 5.2.6 で定義されています。 で定義され、ストレージのセマンティクスは同じ文書で説明されています (RFC のテキスト全体で "http-only-flag" を探します)。

そこには はありません。 について何かアクセスする方法はありません。 HttpOnly クッキーについて、JavaScriptなどの非HTTP APIからアクセスする方法はありません。設計上、そのようなクッキーの読み取りも書き込みも不可能です。