« ユーザーがいること | トップページ | 目覚め »

2006年8月19日 (土)

Opera のユーザエージェント情報

さっき Opera で実験していて気付いたのだけれども、Opera バージョン 9 ではブラウザの識別の設定で完全に Mozilla として認識させるというのと完全に Internet Explorer として認識させるというオプションがある。これを選ぶと、User-Agent 文字列に Opera という文字列が一切含まれなくなるため、本物の Mozilla や Internet Explorer と全く区別がつかなくなってしまう。

これまでは、たとえ Opera が Internet Exploere などに成りすましていたとしても容易に見破ることができた。User-agent 情報に Opera という単語が必ず含まれていたからだ。しかし、新バージョンの Opera は違う。バージョン 9 では User-agent に Opera という単語は含まれていない。よって、User-agent に Opera が含まれているかどうかを調べるという従来のブラウザ判定法はもはや完全ではない。

では、この新しいバージョンの Opera も正しく判別するにはどうすれば良いのか。ブラウザ上で動作する JavaScript では、グローバルオブジェクトに opera というオブジェクトが存在するかどうかを調べることで、辛うじて Opera であることを見抜くことができる。しかし、HTTP ヘッダでユーザエージェントの情報を受け取ったウェブサーバでは、クライアントのブラウザが本物の Internet Explorer なのかあるいはそれに成りすました Opera なのか見分けることはもはや不可能だと思われる。ブラウザの種類に応じて異なる内容のウェブページを返すようなサイトは、うまく利用できなくなるかもしれない。

もっとも、新しい Opera で多くのサイトが利用できなくなるという混乱はおそらく生じないと思われる (というか、実際にそういう混乱は起こっていない)。というのも、従来の Opera ではユーザは User-agent 文字列を容易に変更することができたが、新しい Opera ではウェブサイトごとに一々ダイアログを開いて設定を変更する必要があるからだ。つまり、閲覧者がわざわざ設定しなければ Opera は自分が Internet Explorer であるとは名乗らない。ゆえに、ウェブサイト製作者がブラウザ判別法に手を加えなくとも、ユーザが設定を変えない限りは、Opera は Opera として正しく判別される。

……さて、自作のユーザエージェント判別も騙されるようになってしまったので、何とかしなければ。

|

« ユーザーがいること | トップページ | 目覚め »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/169172/11511735

この記事へのトラックバック一覧です: Opera のユーザエージェント情報:

« ユーザーがいること | トップページ | 目覚め »