[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: domain=.google.cn



もど、長です。

このメールは----------------------------------------------
山岡 克美 <yamaoka@xxxxxxx> さん( 山岡 と引用)の
MsgID   : [emacs-w3m : No.09983]
Subject : [emacs-w3m:09983] Re: domain=.google.cn
Date    : [Tue, 29 Jan 2008 19:18:08 +0900]
-------------------------------------------への返信です-〆
 《件名・引用文は改行・削除・変更してあるかもしれません》

[...]

山岡> どうもありがとうございます。このごろ、この問題はかなり深刻な気が
山岡> してきました。今まで気にならなかったのが不思議ですが、Google.cn
山岡> だけでなく、例えば Google.cz でも同様の障害があります。

山岡> [emacs-w3m:09977] (記事の本題から外れているのですが)
山岡> 日本からアクセスすると Google.cz (チェコ) は日本語のデキストを返
山岡> してくるのですが、そのままだと記事にあるような単語の検索ができま
山岡> せん。そこで言語をチェコ語に変更しようとしても、現在の emacs-w3m
山岡> では cookie を受け付けることができないせいで、不可能です。暫定対
山岡> 策が記事中にあります。でも、何で Firefox は言語を変更しなくても、
山岡> あの単語を検索できるのでしょうか。

これについてちょっと調べた結果を添付します。

FirefoxはLive HTTP Header機能拡張によってキャプチャしたものです。
emacs-w3mは現状手を入れて確認する余裕がないので省略気味です。

(w3m-url-decode-string  "%C5%99%C3%AD%C5%88")
"říň"
なので、URLエンコードしているようですが、どういう判断でこうしているかなどもちょっ
と分りません。

山岡> 他には [emacs-w3m:09982] の sb-perlentaucher-de.el で記事のヘッ
山岡> ダーを http://rss.perlentaucher.de から取得するときに、以下のメッ
山岡> セージが現れてうるさいです。

山岡> rss.perlentaucher.de tried to set a cookie for domain perlentaucher.de
山岡>  - rejected.

山岡> おそらくこれらは単にうるさいだけでなく、実際の不便を生じているで
山岡> しょう。

[...]

山岡> その後、長さんはアイデアをお持ちですか?  ぼくはこれから勉強開始
山岡> です。

[...]

まず、w3mが
| This cookie was rejected to prevent security violation. [wrong number of dots]
として排除するポリシーを組み込んでいることは留意したほうがいいかもしれません。

まあ、emacs-w3mは独自にcookieを管理する機能となっていますので、致命的ではないと
は思います。

方針があるわけでもないのですが、

1. Cookie Monsterについては寛容な対応とする?
 dot < 2 を排除するのみとし、それ以上は受けいれる

2. 上記をオプションとする?
 w3m-cookie-unsafe-acception(新設)がtとなっていれば上記ポリシーで動作する

3. w3m-cookie-two-dot-domains-regexpがdefconstなのをやめる
 すくなくともユーザーがカスタマイズできる変数を用意する

4. ある2dot cookieを発行するドメインで、初めてcookieを受けたときに
  Eat cookie <domain:xxxx.xx>?(yes/no): と聞くようにし、yesならacceptし、
  noならrejectする。
  その後で同じURLで再リクエストし、accept/rejectしつつretrieveする。
  その際のretrieve完了後にSave acception/rejection rule?(y/n):と聞くか、終了時に自
  動保存し、cookie accept/reject rule(.cookie.accept/.cookie.rejectとか)を更新する

4が一番大変ですが、実現すれば安全にcookieを運用できますし、emacsの身軽さを
体現しているのではないかと思います。

ちなみにですが、私はFirefoxで以下のルールでCookieを運用しています。

サイトから送られてきたCookieを保存する : yes
Cookieの生存期間                       : Firefox終了時まで
例外ルール                             : 信頼できるサイトはここに手動登録

cookieが危険なのは
 そのcookieに生で危険な情報が乗ることがある
 cookie中のSESSIONID生存期間中にハイジャックされる可能性がある
 追跡されることがある
だと思いますので、信頼できるところのみ長期保存されるなら、実用上はよいのではない
かと思います。
# 他にも危険性はあるとは思いますが、まだ勉強できてません。

この辺も含めてカスタマイズ可能にするのがよいかと思います。

国や環境で安全性が大きく違う可能性がありますから。
# その辺は日本は比較的マシな方でしょうし...

とりあえず以上です。
--
Tsuyoshi CHO
  mailto:tsuyoshi_cho@xxxxxxxxx
říň

Firefox(google.cz)
http://www.google.cz/search?hl=ja&q=%C5%99%C3%AD%C5%88&btnG=%E6%A4%9C%E7%B4%A2&lr=

live header
http://www.google.cz/search?hl=ja&q=%C5%99%C3%AD%C5%88&btnG=%E6%A4%9C%E7%B4%A2&lr=

GET /search?hl=ja&q=%C5%99%C3%AD%C5%88&btnG=%E6%A4%9C%E7%B4%A2&lr= HTTP/1.1
Host: www.google.cz
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.google.cz/search?hl=ja&q=%C5%99%C3%AD%C5%88&btnG=%E6%A4%9C%E7%B4%A2&lr=
Cookie: PREF=ID=b2f3fcc96fa89278:TM=1201605703:LM=1201605703:S=Dx3u8NyIAn8vvssh
X-OPENID-ANTI-PHISHING: VeriSign's OpenID SeatBelt/1.0.0.3325

HTTP/1.x 200 OK
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Server: gws
Transfer-Encoding: chunked
Content-Encoding: gzip
Date: Tue, 29 Jan 2008 11:25:40 GMT
----------------------------------------------------------
http://www.google.cz/search?q=%C5%99%C3%AD%C5%88&hl=ja&lr=&start=10&sa=N

GET /search?q=%C5%99%C3%AD%C5%88&hl=ja&lr=&start=10&sa=N HTTP/1.1
Host: www.google.cz
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PREF=ID=b2f3fcc96fa89278:TM=1201605703:LM=1201605703:S=Dx3u8NyIAn8vvssh
X-OPENID-ANTI-PHISHING: VeriSign's OpenID SeatBelt/1.0.0.3325

HTTP/1.x 200 OK
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Server: gws
Transfer-Encoding: chunked
Content-Encoding: gzip
Date: Tue, 29 Jan 2008 11:25:48 GMT
----------------------------------------------------------


emacs-w3m(google.co.jp)
http://www.google.com/search?q=%C5%99%C3%AD%C5%88&hl=ja&lr=lang_ja&ie=utf-8&oe=utf-8

emacs-w3m(google.cz)
fail

w3m(google.cz)
$ w3m -dump_head "http://www.google.cz/search?hl=ja&q=%C5%99%C3%AD%C5%88&btnG=%E6%A4%9C%E7%B4%A2&lr=";
Received cookie: PREF=ID=ac34e8aeae172fce:TM=1201606113:LM=1201606113:S=nbgJSWYvePiszixJ
This cookie was rejected to prevent security violation. [wrong number of dots]
HTTP/1.0 200 OK
Cache-Control: private
Content-Type: text/html; charset=Shift_JIS
Set-Cookie: PREF=ID=ac34e8aeae172fce:TM=1201606113:LM=1201606113:S=nbgJSWYvePiszixJ; expires=Thu, 28-Jan-2010 11:28:33 GMT; path=/; domain=.google.cz
Server: gws
Content-Length: 0
Date: Tue, 29 Jan 2008 11:28:33 GMT
Connection: Close



(w3m-url-decode-string  "%C5%99%C3%AD%C5%88")
検索文字になりました。