web-dev-qa-db-ja.com

document.cookieにサイトのすべてのCookieが表示されないのはなぜですか?

VBulletin 3.8を使用するフォーラムにアクセスします。ログインすると、firebugを使用して、設定されたCookieを確認します。私はこれらのクッキーを見ます:

__utmb、__ utmc、__ utma、__ utmz、bbsessionhash、vbseo_loggedin、bbpassword、bbuserid、bblastactivity、bblastvisit

すべてに値セットがあり、ドメインは同一でした。

しかし、JavaScriptを使用してそれらを表示すると、これらのCookieのみが表示されました。

__utmb、__ utmc、__ utma、__ utmz、vbseo_loggedin、bblastactivity、bblastvisit

Firebugでは、実際に設定されたbbsessionhash、bbpasword、およびbbuseridの3つのCookieのみが表示されます。 HTTPOnly列のHTTPOnly。それはどういう意味ですか、document.cookieを使用してJavaScriptでこれらのCookieを表示できない理由は何ですか?

61
kiennt

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

CookieがHttpOnlyフラグを付けて送信された場合、JavaScriptなどのクライアント側プログラムには直接表示されません。サーバーの観点から見ると、通常の場合との唯一の違いは、set-cookieヘッダー行に文字列「HttpOnly」を含む新しいフィールドが追加されることです。

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

ブラウザがこのようなCookieを受信すると、次のHTTP交換で通常どおり使用することになっていますが、クライアント側のスクリプトからは見えません。 HttpOnlyフラグは標準の一部ではなく、すべてのブラウザーに実装されているわけではありません。

2017年からの更新:2009年からかなりの時間が経過し、HttpOnlyヘッダーフラグが標準になりました。これは セクション5.2.6 RFC6265 、同じドキュメントで説明されているストレージセマンティクスを使用して(RFCテキスト全体で「http-only-flag」を探します)。

「非HTTP」APIからのHttpOnly Cookieにアクセスするには、noの方法があります。 JavaScript。設計上、このようなCookieの読み取りも書き込みもできません。

86
drdaeman

この拡張機能を使用してHttpOnlyのチェックを外すと、document.cookie javascriptの場合: https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg

0
Nabi K.A.Z.