hnwの日記

Greasemonkeyで自動ログイン

今更ですけどFirefoxのextensionのGreasemonkeyをインストールしてみました。

これは何をするextensionかというと、ページをロードして(おそらく他の全部のJavascriptなどの処理が終わった後で)ユーザーの好きなJavascriptを自動実行させることができるというものです。

このextensionの存在は以前から知っていたんですけど、何が便利なのか今ひとつピンときていませんでした。自分に身近な具体例がパッと思いつかなかったのが原因かと思います。

ただ、ちょっと触ってみて、自分にとって便利な機能を思いつきました。「自動ログイン」機能です。


どういうことかと言いますと、Webサービスを何種類も利用しているとバレても痛くないパスワードって誰でもあると思います。バレても痛くないから、パスワードをブラウザに覚えさせたりしていて、自分では二度とタイプしなかったり。

そんなパスワードについて、ブラウザを再起動したりセッションタイムアウトしたりで、再度ログインを求められることがあるはずです。そこでブラウザが覚えてくれてるから自分は「ログイン」ボタンを押すだけ。

でもちょっと待ってください。「ログイン」を押すときに何かの判断をしているんでしょうか。してないですよね。じゃあ自動で押してもらっちゃいましょう。Greasemonkey君に。


前置きが長くなりましたがそういうことです。たとえば、私の好きなTODO管理サービス「checkpad」の自動ログインスクリプトを紹介してみます。

// ==UserScript==
// @name           checkpad auto-login
// @namespace      http://hnw/namespace/greasemonkey
// @description    checkpad auto-login
// @include        http://www.checkpad.jp/
// ==/UserScript==

(function() {

  var f=document.forms;
  for (var i=0; i<f.length; i++) {
    if (f[i].action == "http://www.checkpad.jp/") {
      var e=f[i].elements;
      for (var j=0; j<e.length; j++) {
        if (e[j].type == "pasword" && e[j].value.length == 0) {
          return;
        } else if (e[j].type == "submit") {
          e[j].click();
          return;
        }
      }
    }
  }

})();

言うまでもない注意点ですけど、この手のものは他人のコードを使うのは非常に危険です。たとえばID・パスワードを攻撃者のサイトに送信するようなコードを書くのは容易です。ブラウザに覚えさせていないパスワードも含め、あらゆる情報を盗まれる危険性があります。

上のコードにそんな危険性は無いと私は確信していますけど、あなたがこのページを見る頃には私のアカウントがクラックされてコードが書き換えられているかもしれません。万一上のコードを利用したい人がいらしたら、意味を把握してからインストールすることをオススメします。

こんなことはコードが書ける人にとっては当然のことなんですけど、コード書かない人にはわからないと思うんですよね。どこからインストールしたにせよ、人のコードを使うなら絶対に中身を確認すべきだと僕は思います。


少し話がそれましたけど、ブラウザが勝手にログインボタンを押してくれるのは実際便利です。Webサービスを使う上での心理的障壁が下がりますので、使いたいと思ってるんだけど案外使っていないサービスがもしあれば、自動ログインを試してみてはいかがでしょうか。僕に関して言うと、今まで以上に気楽にTODOを書けそうな気がします。