もうひとつの「自動ログイン」
livedoor Reader へ自動的にログインする方法を書いた。
livedoor Reader へ SSL 認証で自動ログインする方法 : 亜細亜ノ蛾
便利なチップス記事、と見せかけて大企業のサービスに対して苦言を呈しているので、「中の人」が見てこっそり直してくれるのを期待している。
「人様が考え出したアイデアを無断で改変し、我が物顔で公開する」といういつもの手口だが、我ながら良い記事を書いたと思う(自画自賛)。
ただ、自宅で自分だけが使っているコンピュータなら、もっと手軽に使いたい。ログインする手順自体を省略できないものか──。できれば、最初のデートはお食事だけという手順も省略したいものだ──。
HTTP cookie
「ログイン前/ ログイン後」を相手のサイト(サーバ)が見分けているのは、多くの場合はブラウザのクッキー(HTTP cookie)だ。livedoor Reader も同じで(セッション・)クッキーを利用している。
ref.: HTTP cookie – Wikipedia
Firefox やサイト側の仕様なのか、それとも自分が何か間違っているのか、ブラウザの終了と同時にクッキーが破棄されるようだ。少なくとも自分のコンピュータでは。
さて、どうするか──。って、こうして記事にしているという事実から、そしてタイトルを見ても分かるとおり、解決策が見つかったので紹介してみよう(実行は自己責任で!)。
クッキーの設定
まずは Firefox のオプション画面で「○日間クッキーを保存する」みたいな項目を探したが、そのような選択肢はなかった。
検索してみると、about:config や user.js で設定できるようだ。
network.cookie.lifetime.days
network.cookie.lifetimePolicy が 3 のときに cookie を何日保存するのか。network.cookie.lifetimePolicy
cookie の保存期間をどのように設定するか。
- 0: サーバーが指定した期間まで
- 1: 毎回ユーザーに確認する
- 2: ブラウザを終了するまで
- 3: network.cookie.lifetime.days で指定された日数の間保存する
//Cookieの保存期間。サーバーの指定した期間(0) 毎回確認(1) //セッション間のみ(2) network.cookie.lifetime.daysで指定(3) user_pref("network.cookie.lifetimePolicy",3); user_pref("network.cookie.lifetime.days",90);
快適な環境へ
上で例に挙げている user_pref("..."); の 2 行を user.js に書き込んだ。これでサーバの指定した期間にかかわらず、90 日間はクッキーが保存される。
livedoor Reader にログインしたあとブラウザを再起動すると、ログイン作業が不要になっていた。これは便利だ。
about:config と user.js については、下の説明をどうぞ。
about:config と user.js による Firefox のカスタマイズ – えむもじら
まとめ
クッキーの保存期間を延長することによって、セキュリティ上の問題があるかもしれない。しかし、クッキーの保存期間を「Firefox の終了まで」にしている人が 90 日間ブラウザを閉じなければ、同じことだ。というのは暴論だろうか(きっとそう)。
XSS脆弱性うんぬんという話につながりそうだが、そもそもクッキーを盗まれた時点で期間は関係ない気がするしなぁ……(ぶつぶつ)。ひろみちゅ先生に、また [bad] タグをつけられるのかなぁ……。
はてなブックマーク – HiromitsuTakagiのブックマーク / bad
まぁ、ここは「自己責任でどうぞ」というお決まりの文句でお茶を濁して終わる──。
