Home / Diary / OperaのWidgetからlocalhostにアクセスできない件

OperaのWidgetからlocalhostにアクセスできない件

JQuery(じゃなくてもいいけど)を使って以下のようにアクセス。

$.ajax(
    {
      type : "GET"
    , url : "http://127.0.0.1:10080/"
    , data: "foo=1&bar=2"
    , async : false
    , dataType : "html"
    , success : function( data, status ) {
        log( data, status );
      }
    }
);

すると、以下のようなエラーが返ってきた。

JavaScript - file://localhost/C:/widget/hogehoge/index.html
Event thread: DOMContentLoaded
Error:
name: Error
message: Security violation

これを見て、Opera的にはlocalhostも立派なローカルストレージの一部であり、プライベートな領域だからアクセスできないようにしていると思った。

という旨をTwitterで愚痴ったところ、edvakfさんからOpera Widgets security model - Opera Developer Communityのページを紹介して頂いた(というかページの存在に今まで気づかなかったのもどうかと思うが)。このページの中に以下のような記述が。

The following IPv4 IP ranges are defined as intranets:

  • 10.0.0.0 to 10.255.255.255
  • 172.16.0.0 to 172.31.255.255
  • 192.168.0.0 to 192.168.255.255
  • 169.254.0.0 to 169.254.255.255

Opera Widgetが接続を許可しているイントラのIPアドレスの範囲だが、自分のPC=localhostは127.0.0.1なので許可されていない。

やはりセキュリティ的にアクセスさせない方向だったか・・・いや、むしろサーバーのほうを変えてみるというのはどうだ?

WebrickのServerを以下のように設定して起動させてみる。

server = WEBrick::HTTPServer.new( {
    :Port => 10080,
    :BindAddress => '192.168.0.***'
} )

BindAddressにはプライベートアドレスを。でもってWidget側でアクセスしてみたところ、見事に反応が返ってきた。

ただ、これってセキュリティ的にどうなのよ? と思ったら、しっかり書いてあった。

A special limitation is that widgets may only contact either internet addresses or intranet addresses, not both kinds.

つまり、Widgetはインターネットかイントラネットのどちらかにしか接続できませんよ、と。実際に試したところ、http://www.yahoo.co.jp/にリクエストを出したWidgetでは、リロードしようが何しようがローカルには一切接続できなくなった。逆もしかりで、削除するまで有効な設定として残るようだ。

これなら、例えプライベートアドレス+ポートを総当りで恥ずかしいデータを抜かれても外に持ち出せない、ということなのだな。

いちいちサーバーにスクリプトをアップロードせずともローカルだけでテストできるようにしたかったので、テスト用途ならこの仕様で満足だわ。

Info

関連のあるエントリ
2007-11-14 続・ニコニコ動画視聴補助スクリプト for Opera
2007-09-05 怒本格最速ブラウザが完全進化「Opera 9.5 Alpha 1」
2006-08-01 ニンテンドーDSブラウザでAjax
2007-04-14 ニコニコ動画視聴補助スクリプト for Opera
2007-06-18 ニコニコ動画視聴補助CSS
新しいエントリ(日付順)
JavaScriptを使わずにブックマークコメントを表示
古いエントリ(日付順)
カドゥケウス NEW BLOOD Extream タイムアタック

SBM Comments

szsk
Widgetはインターネットかイントラネットのどちらかにしかアクセスできない
edvakf
はてなスター10個ぐらいあげたい。

Comment

投稿したコメントは公開されません。サイトオーナーのみが閲覧できます。
返信等を希望する場合は、コメント内に連絡先のメールアドレスかサイトのURLを入力してください。

2008
0602

Tagsopera

最新のエントリ
注目のエントリ(はてな)
ゲーム攻略

暴満館 ~The House of Full Violence~
Powered by WordPress.
About | Contact | 新着のエントリ情報 RSS