Greasemonkeyは恐ろしい

Greasemonkeyには GM_xmlhttprequest なる関数が用意されている。
これは XMLHTTPRequest の制限、「同じドメインにしかアクセスできない」という制限をなくした物である。なんと便利なのであろうか!
しかし恐ろしいことに、この GM_xmlhttprequest は、デフォルトでアクセスの際にブラウザが保存している各ドメインCookieを利用するようだ*1
これは、スクリプトの作者が悪意を持てばプライバシーに関わる情報でも取り放題、ということを意味する。

たとえばプログラムが読めないユーザーがいたとする。彼には僕が信用できる人間かどうかわからない。で、僕が先日公開したスクリプト。Grasemonkeyの設定「Include pages」で、はてなダイアリーでしか動かないようになっている。
プログラムが読めないユーザーとしては「まあはてなダイアリー内で保存されている情報が漏洩する程度ならいいか」と思ってインストールしたとする。
ところが、GM_xmlhttprequest を悪用すれば、「Include pages」で設定した範囲以外のどこにでもアクセスし放題だ。しかもcookieはブラウザに保存されている物を利用するので、ログインしたままの各種サービス(Gmailmixi、など)の中身などは丸見えである。
で、「スクリプトgmailにアクセスしてメールの中身を僕のサーバに転送」などということもできてしまうのである。

スクリプトが読めても、「外部サーバのスクリプトを動的に追加する」などの方法でGrasemonkeyスクリプト以外のところに悪用スクリプトが書いてあるかもしれない。

「Grasemonkeyはそれくらいできる」ということを認識して使う方がいいだろう。
まあ実際は、実行ファイル(.exe)やfirefoxの拡張(.xpi)の方が危ないし、そこまでのことはできないのだが…

追記→ [Greasemonkey]Greasemonkeyはそんなに恐ろしくない(君たちはもっと恐ろしい物を平気で使っているではないか)

*1:いくつか試してみたがCookieを無効にする方法はわからなかった