以下のサイトに、ローカルサーバの発行したCookieがChromeではdocument.cookieで取れないと有ります。
http://onefourhack.seesaa.net/article/114059111.html
ローカルサーバとは、ブラウザと同一マシン上のサーバという事で良いと思いますが、
実際に試してみると、デバッグコンソールのStorageにCookieが表示されるにも関わらず、確かにdocument.cookieの値は””で
した。
hosts を書き換えてみたり、localhostという名前以外でアクセスすることも試してみましたが、やはりcookieが取れませんでした。
これは、Chrome の仕様なのでしょうか、bugなのでしょうか。
Webサービスと協調するChrome extensionを作っているのですが、ローカルで作業できないとかなり手間になりそうなので、
何か良い方法をご存知でしたら、教えていただけたらと思います。
よろしくお願いします。
> 以下のサイトに、ローカルサーバの発行したCookieがChromeではdocument.cookieで取れないと有ります。
これは、ローカル*サーバー*ではなく、ローカルファイルのことだと思われます。
実際にfile:///で始まるURLの場合、Cookieは扱えません。
ローカルサーバー( http://localhost/ など)であれば、Cookieを扱えるはずです。
私の方で試した限りでは、http://localhost/ でCookieの保存、参照はできました。
もしかしたら、pathやexpireあたりに問題があるのかもしれません。
--
このメールは Google グループのグループ「Chromium-Extensions-Japan」の登録者に送られています。
このグループに投稿するには、chromium-ext...@googlegroups.com にメールを送信してください。
このグループから退会するには、chromium-extension...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/chromium-extensions-japan?hl=ja からこのグループにアクセスしてください。
> localhost:3000 にRails でサーバを立ち上げて、そこでsessionようにCookieを発行しています。
なるほど、port部分が怪しそうですね。
一応、私の方でもなるべく環境を揃えて試してみましたが、こちらではやはりcookieを参照できているようです。
http://ss-o.net/img/mac_beta_cookie.png
ただ、サーバーからセットしたCookieではなく、JavaScriptでセットしたCookieなのでまた事情が違うのかもしれません。
# 見たところMacのbeta版のようなので、同じバージョンでテストしてみました
役に立つ情報かわかりませんが、とりあえずご報告まで。
On 3月22日, 午後8:01, HAMAMOTO Nori <norisu...@gmail.com> wrote:
> 太田さん
>
> お返事ありがとうございます。
>
> 私の方は、こんな感じです。http://img.skitch.com/20100322-g31gsjqxdutekf5a7e3dy2hbr3.png
>
> localhost:3000 にRails でサーバを立ち上げて、そこでsessionようにCookieを発行しています。
> このCookieをcontent scriptで拾って popupから送信するxhr用のCookieに使い回したかったのですが、content
> script でこれを取得できなかったという状況です。
>
> 何が原因かわかりますでしょうか?
> Nori
>
> 2010年3月22日2:12 Ohta Shogo <os0...@gmail.com>:
>
>
>
> > こんにちは、太田です
>
> > > 以下のサイトに、ローカルサーバの発行したCookieがChromeではdocument.cookieで取れないと有ります。
> > これは、ローカル*サーバー*ではなく、ローカルファイルのことだと思われます。
> > 実際にfile:///で始まるURLの場合、Cookieは扱えません。
>
> > ローカルサーバー(http://localhost/など)であれば、Cookieを扱えるはずです。
> > 私の方で試した限りでは、http://localhost/でCookieの保存、参照はできました。
> > もしかしたら、pathやexpireあたりに問題があるのかもしれません。
>
> > On 3月22日, 午後12:10, Nori <norisu...@gmail.com> wrote:
> > > こんにちは
>
> > > 以下のサイトに、ローカルサーバの発行したCookieがChromeではdocument.cookieで取れないと有ります。
> >http://onefourhack.seesaa.net/article/114059111.html
>
> > > ローカルサーバとは、ブラウザと同一マシン上のサーバという事で良いと思いますが、
> > > 実際に試してみると、デバッグコンソールのStorageにCookieが表示されるにも関わらず、確かにdocument.cookieの値は””で
> > > した。
>
> > > hosts を書き換えてみたり、localhostという名前以外でアクセスすることも試してみましたが、やはりcookieが取れませんでした。
> > > これは、Chrome の仕様なのでしょうか、bugなのでしょうか。
>
> > > Webサービスと協調するChrome extensionを作っているのですが、ローカルで作業できないとかなり手間になりそうなので、
> > > 何か良い方法をご存知でしたら、教えていただけたらと思います。
>
> > > よろしくお願いします。
>
> > --
> > このメールは Google グループのグループ「Chromium-Extensions-Japan」の登録者に送られています。
> > このグループに投稿するには、chromium-ext...@googlegroups.com にメールを送信してください。
> > このグループから退会するには、chromium-extension...@googlegroups.com<chrom ium-extensions-japan%2Bunsu...@googlegroups.com>にメールを送信してください。
> > 詳細については、http://groups.google.com/group/chromium-extensions-japan?hl=jaからこのグループにアクセスしてください。
XSS対策の1つとして有効ではあるので、Railsの実装も理にかなってはいますね。
> popup から、私の自作のWebサービスにアクセスしたいというのがそもそも実現したいことです。
この目的であれば、単純にインラインフレームを使用するというのも有効かもしれません。
iframeで読み込むためのページを用意して置き、そこでContent Scriptsを使用すれば、
Cookieを気にする必要もありませんし、セキュリティ的にも安全だと思います。
On 3月23日, 午前9:26, HAMAMOTO Nori <norisu...@gmail.com> wrote:
> 原因わかりました。
> サーバがローカルに有るか、リモートに有るかは関係有りませんでした。
>
> Cookie にはhttponly属性というのが有って、これをonにすることで、javascript
> からアクセスできないcookieを作成することができるとのことで、これが原因でした。
>
> 太田さんのスクリーンショットと私のスクリーンショットを見比べてもらうとわかるのですが、
> Cookie一覧表の右のほうにHTTP属性というのが有るのが確認できると思います。
> これが、そのhttponly属性です。
>
> > 太田さんの:http://ss-o.net/img/mac_beta_cookie.png
> > 私の:http://img.skitch.com/20100322-g31gsjqxdutekf5a7e3dy2hbr3.png
>
> 私の方のcookieには、このチェックボックスがonになっているので、値が取れないという状況でした。
>
> popup から、私の自作のWebサービスにアクセスしたいというのがそもそも実現したいことです。
> セキュリティー的に一抹の不安は有りますが、この属性をoffにしてsessionを作成し、content script
> でcookie値を取得後backgroundプロセスへ送って、popupからそのcookie値付きでxhrでサービスにアクセスするという方法で実現して みたいと思います。(他にいい案があれば教えて下さい。)
>
> 以上、ありがとうございました。
> Nori
>
> 2010年3月22日10:21 HAMAMOTO Nori <norisu...@gmail.com>:
> >> > > このグループから退会するには、chromium-extension...@googlegroups.com<chrom ium-extensions-japan%2Bunsu...@googlegroups.com><chrom
> >> ium-extensions-japan%2Bunsu...@googlegroups.com<ium-extensions-japan%25 2Bunsu...@googlegroups.com>
> >> >にメールを送信してください。
> >> > > 詳細については、
> >>http://groups.google.com/group/chromium-extensions-japan?hl=ja
> >> からこのグループにアクセスしてください。
>
このグループから退会するには、chromium-extension...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/chromium-extensions-japan?hl=ja からこのグループにアクセスしてください。
ただ、一点注意しなければいけないのが、ユーザーの設定次第ではCookieが送られないケースがあることです。
オプションの高度な設定→コンテンツの設定→Cookieに、すべてのサードパーティのCookieをブロックするという項目があります。
デフォルトではチェックされていませんが、最近ではクリックジャッキング対策などでチェックすることが推奨されている項目なので、Cookieが送られ
ないことも想定しておくと良いと思います。
といっても、どう対策したものかといった感じですが。。サードパーティのCookieをブロックしているとこのサービスは利用できません的なメッセージ
も仕方ないかなとは思います。
On 3月24日, 午前5:35, HAMAMOTO Nori <norisu...@gmail.com> wrote:
> 太田さん
>
> >> popup から、私の自作のWebサービスにアクセスしたいというのがそもそも実現したいことです。
>
> これですが、よくよく考えてみると、content script で cookie を取得して、background プロセスへ送って、
> popup から、この cookie を付加したxhrを送信して実現、みたいな手の込んだ事は全く必要ないことに気がつきました。
> こんな事全くしなくても、同一ドメインで提供されているサービスにアクセスする際には、ブラウザからアクセスしようと、
> popupで実行されるxhrからアクセスしようとcookieは勝手に付加されます。
>
> 当たり前ですね。 それが cookie ですから。
>
> Webサービスを表示しているタブのdevelopper tool 内のクッキーリストに、そのサービスのCookieが表示されていて、
> popup をタブで表示したタブのdevelopper tools 内のクッキーリストにそれが無いと、popupからはそのcookieにアクセス
> 出来ないと思うじゃないですか!!
> 全然勘違いしていましたね。
> local storage のリストと、cookie のリストでは、その意味がまるで違う事に気がつきました。
>
> local storage のリストは、そのタブ内(同一ドメイン内)からアクセスできるstorage に格納された値のリスト。
> cookie のリストは表示されているドメインから送られてきたcookieリストです。
>
> なので、みなさん私と同じ間違いをしないようにお気をつけ下さいませ。
>
> それから、もうひとつ気がついたのが、developer tool の Resource に表示されるhttpの取得リストですが、
> これのヘッダにはCookieが含まれていないようですね。
>
> 同じサイトにFirefoxでアクセスして、Firebug ではCookieが表示されるのが、developer tool
> の方だと表示されていませんでした。
> これはどうしてなんでしょう。
>
> というわけで、長くなりましたが、これが事の顛末です。
>
> ではでは
> Nori
>
> 2010年3月23日10:48 HAMAMOTO Nori <norisu...@gmail.com>:
> ...
>
> もっと読む ≫
--
太田さんCookieが表示されないのは、Safariでも同様なんですね。WebKitの仕様かな。なんでそうしているのかはよくわかりませんね。
>Noriさん
サードパーティのCookieをブロックというのは、
現在表示しているドメインのCookie以外を送出しないという設定です。
PopupやBackground pageでは、ドメインがその拡張のIDになっていますので、
サードパーティのCookieをブロックしている状態では、
PopupからのクロスドメインリクエストでCookieを送出しないはずです。
と、言いつつまだ検証したことがないので、本当にそうなのか自信がありません。
# Firefoxではそういう挙動でした
あとで試してみようと思います。
>北村さん
WebKit Bugzillaにはかなり前から登録されていました。
https://bugs.webkit.org/show_bug.cgi?id=16531
うーん、Appleの方は乗り気でないみたいですね…。
On 3月24日, 午後6:03, Yuta Kitamura <yu...@chromium.org> wrote:
> 太田さん、Noriさん、
>
> こんにちは、Googleの北村です。
>
> 2010/3/24 HAMAMOTO Nori <norisu...@gmail.com>
>
> > 太田さん
>
> > Cookieが表示されないのは、Safariでも同様なんですね。
> > WebKitの仕様かな。
> > なんでそうしているのかはよくわかりませんね。
>
> 実際に送信されているヘッダが Web Inspector
> の画面で表示されないのであれば、おそらくWebKitのバグです。問題が再現できる小さなテストケースと一緒にhttp://webkit.org/new-inspector-bugからバグを登録していただけると助かります。
>
> もし英語でバグレポートを書くのが難しければ、日本語で構いませんので私までバグレポートをメールで送っていただけますか。こちらで翻訳してバグを登録させてい ただきます。
> ...
>
> もっと読む ≫
> ...
>
> もっと読む ≫