Yuriko.Net 個別記事

2007-10-21
晴れ

携帯電話でログイン状態をどうやって保持するか

ゆりこ による 2007-10-22 00:14:52 の投稿
カテゴリー: WordPressハック

携帯電話閲覧プラグインにウェブログ管理機能を付けようと考えていますが、かなりの難題となりそうです。

まず、i-mode でクッキーが使えないのが一番のネックです。つまり、ログイン状態の保持を URI 文字列で行なわないといけないわけです。といって、PHP のセッション機能も使えません。PHP には、URI にセッション ID を埋め込む機能がありますが、いまどきのサーバーでは使用禁止になっています (php.ini で session.use_only_cookies =1 になっている) 、スクリプトから一時的に有効にするのも無理です (.htaccess を使うしかない)。[追記] session.use_only_cookies は ini_set を使えばスクリプト中で動的に変更できました。

大体、PHP のセッション機能はサーバーによって設定がさまざまなので、OSS で配布するソフトで安全にかつ確実に使うのは無理があります。WordPress も、PHP のセッション機能は使わず、ログイン情報はクッキーに保存しているだけです。余談ですが、WordPress は、ユーザー名を平文、パスワードを md5 を2回掛けたものを記録しているので、管理画面を閲覧するたびに、md5 されたパスワードを毎回サーバーに送信していることになります。なんか怖い……。

PHP のセッション機能が使えないとなると、セッション機能を自前で実装するか、ユーザー名・パスワードをハッシュ化したものを URI に埋め込むしかありません。前者は、セッション情報はファイルで保存するとき、「安全にファイルを保存する場所が見つけにくい」という面が難問です (プラグインのディレクトリ配下では危険すぎる)。public_html 以外に Web サーバーから書き込めるディレクトリを作ってもらって、そこに保管すれば比較的安全ですが、プラグインのインストールが極めて困難になります。後者は言うまでもなく危険です。

あ、セッション情報をファイルじゃなくてデータベースに保存すればいいことに気がつきました。これならば安全に作れますね。ただし、データベースの内容が汚れてしまいますが ;-)

トラックバック・コメント »

コメントはありません。

上に戻る

※スパム対策プラグインの影響により、すぐにトラックバックが反映されない場合があります。お手数ですが、半日ほど待ってみてください。

コメント投稿

※発言の責任を明確にするため「名無し」「通りすがり」「匿名希望」等の匿名は不可とします。捨てハンドルでもいいので必ず名乗ってください。
XHTML (使えるタグ): <a href="" title="" ktai=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> .
※スパム対策プラグインの影響により、すぐにコメント内容が表示されない場合があります。お手数ですが、半日ほど待ってみてください。

上に戻る