Shammer's Philosophy

My private adversaria

Login情報自動補完

様々なサイトを閲覧していると、ログイン情報が必要なサイトに出会う。そのたびにログイン情報を入力するのはかったるいので、JavaScript を使用してログインに必要な情報を渡すことができないかを考えてみた。以下のようにしてやればログイン画面が表示されずにログイン直後のページを表示させることができる。

<form name="LoginAccount" method="POST" target="_blank" action="http://www.example.com">
  <input type="hidden" name="user" value="username"></input>
  <input type="hidden" name="pass" value="password"></input>
</form>
<a href="javascript:document.LoginAccount.submit();">Login</a>

まず、メソッドはPOST、action はログインしたいサイトの URL で、hidden でアカウント情報を定義。これはサイトごとにどういう名前でログインアカウント名とパスワードを渡すのかを確認しないといけない。上記の例だと、ユーザー名は user というパラメータで、パスワードは pass というパラメータで渡される。urlencoded な POST データにすると以下のような感じか。

POST / HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

user=username&pass=password

実際には他にもいろいろなヘッダがあるだろうけれども、面倒だから省略。
なお、この方法をやると HTML のソースを見ることでパスワード等がわかってしまうので、他人にログインされたら困るサイトではやるべきではない。用途としては、ローカルに上記を書いた HTML を置いて自分だけで使用するという感じだろうか。