Sep 28, 2006
Firefoxの拡張MozLabの中に含まれるMozReplがヤバすぎる件について
MozLabという拡張を昨日知ったのですがhttp://dev.hyperstruct.net/trac/mozlab
この中に含まれているMozReplというのがヤバい。Firefoxにtelnet接続できるようになる。
とりあえずRubyで書いた簡単なサンプル、今見ているページをリロードするだけ。
require 'net/telnet'
telnet = Net::Telnet.new({
"Host" => "localhost",
"Port" => 4242
}){|c| print c}
telnet.puts("content.location.reload(true)")
telnet.close
ひたすら自分が見ているURLとページタイトルを記録する系とか簡単に作れそう。
今見ているページのURLとタイトルを取得するサンプル。
require 'net/telnet'
prompt = /^repl> /
telnet = Net::Telnet.new({
"Host" => "localhost",
"Port" => 4242,
"Prompt" => prompt,
})
telnet.waitfor(prompt)
telnet.cmd("content.location.href") do |c|
print c.gsub(prompt,"")
end
telnet.cmd("content.document.title") do |c|
print c.gsub(prompt,"")
end
telnet.close
ただし一秒おきとかに実行してたらそれなりにFirefoxの側に負荷がかかるようなので注意。
まだ詳しく調べてはいないんだけど、原理的にはFirefoxの全操作をtelnetから叩くことができそう。
about:configからextensions.mozlab.mozrepl.autoStartをtrueにすればFirefoxの起動時に自動でtelnet接続できる状態になる。extensions.mozlab.mozrepl.portでポートの変更も可能。localhost以外からの接続は受け付けないようなので、起動しただけでクラックされるようなことはないだろう。もちろん自己責任でFirefoxをぶっ壊すようなコードを実行することもできる、と思う。
ポートフォワード仕込んでMacBookのFirefoxを遠隔操作してみたり。必須の拡張がまた増えた。
Edit this entry...
wikieditish message: Ready to edit this entry.
A quick preview will be rendered here when you click "Preview" button.