2014/05/02

東工大ポータルとtitech-pubnetのログイン自動化のスクリプト(とブックマークレット)書いた

新規性あります!

ブックマークレットを利用するには、 東工大script ←このリンクをブックマークに登録し、その後、urlの最後らへんにある「14X99999」「password1234」「111……777」の箇所を自分のアカウントやパスワードに合わせて変えてください。
または、
javascript:(function(d,n,j,i,p,m){var l=d.login,f=d.getElementsByTagName('input'),t,c;switch(n.search.replace(/[&?]Template=([^&]*)(&.*)?/,'$1')){case 'userpass_key':l.usr_name.value=i;l.usr_password.value=p;l.submit();break;case 'idg_key':while(++j-4){t=f.item(j);c=t.parentNode.parentNode.getElementsByTagName('th')[0].innerHTML;t.value=m[c.match(/[1-7]/)[0].charCodeAt(0)-'1'.charCodeAt(0)].charAt(c.match(/[A-J]/)[0].charCodeAt(0)-'A'.charCodeAt(0));}l.submit();break;default:if(n.host+n.pathname=='wlanauth.noc.titech.ac.jp/fs/customwebauth/login.html'){d.getElementById('username').value=i;d.getElementById('password').value=p;submitAction();}else{n.href='http://portal.titech.ac.jp/';}}})(document,location,0,'14X99999','password1234',['1111111111','2222222222','3333333333','4444444444','5555555555','6666666666','7777777777']); これを一度テキストエディタなどにコピーして、編集後に手動でブックマーク登録するのもアリです。
(ちなみに、上の枠内では折り返しして表示されてると思いますが、改行はありませんので気にせずそのままコピペしてください。)



言うまでもないとは思いますが、たとえば「333…3」は学生証ウラの表の3行目のアルファベットを続けて10文字(AからJ列まで)入れてください。
ワンクリックで使える場所(ツールバーとか)に置いとくのが便利です。

gistの方にも書いときましたが、このブックマークレットは、

  • titech-pubnetのログイン画面でクリックすると自動入力+自動送信
  • 「同意(マトリクス認証)」をクリックした直後のページでクリックすると、自動入力+自動送信
  • その後の「Matrix Authentication」のページでクリックすると、適切に自動入力+自動送信でログイン完了
  • これら以外の普通のページからこのブックマークをクリックすると東工大ポータルのページにジャンプ
といった挙動をします。
要は普通のブックマークとしても使えて、ログインページではワンクリックで次のページに進める便利なスクリプトです。

詳しい解説はしませんが、安全性が心配なら gist にコメント付きのソース置いとくので各自確認するといいと思います。

ちなみに、Firefoxには Greasemonkey という、自作スクリプトを任意のwebページ上で動かせるアドオンがありまして、それを使えばクリック無しで自動ログインできます。
Firefoxユーザは是非そっちを使ってください。楽なので。

gist にアクセスして、titech-automatrix.user.jsの横にある「<>」みたいなボタンをクリックすると自動でインストール画面が出るはずです。

警告のある通りスクリプトで何でもできてしまうので、信頼したいならソース読んでください。

Google Chromeだとuser scriptを自作の拡張機能として使えるようですが、スクリプト読み込みのタイミングのせいか正常に動作しません。
(詳しく言うと、パスワード認証の段階でd.login.usr_nameが未定義だと言われます。たぶんDOMが構築される前にスクリプトが実行されてるとかじゃないかな。)
気が向いたら適当に対応するんでそれまで待つか、待てないなら誰か適当に改造しちゃってください。
利益取らなければ勝手に公開して構いませんので。

あと他になんか問題あったら連絡ください。

参考:新規性

  • ブックマークレット版は、ワンクリックで入力のみならず送信までできます
  • Greasemonkey版が用意されており、ノークリックで全自動ログインできます
  • パスワード認証にも対応しています。共通のブックマークレット(も、Greasemonkey用スクリプトも)ひとつでtitech-pubnetとtitech-portalの2つのサイトでのログインができます
  • 関係ないページでクリックした場合、普通のブックマークとして機能し、titech-portalにジャンプします(webページでなくブラウザ用の画面(新規タブとかアドオン管理とか)からは無理でしたが)。つまり普段からブックマークバーに置いておくだけの利用価値があります