●XOOPS 2.0.14JP
用のオートログインハック(+
α)
済みコアファイルパック (V3)
--------------------------------------------------
XOOPS 2.0.14JP
に
自動ログイン
機能を
付与するためのパッチです。
このアーカイブ
内に
含まれる
全ファイルを、お
使いのXOOPS 2.0.14JP
に
上書きすることで、
自動ログイン
機能が
有効になります。
さらに、
上書き
後のシステムモジュールアップデートで、「IDとパスワードを
記憶」というチェックボックスが
表示されます。なお、カスタムテンプレートセットを
利用している
場合は、テンプレートマネージャに
入り、ご
利用のテンプレートセット
内のシステム
管理のsystem_userform.htmlおよびsystem_block_login.htmlを
削除する、または
手作業でチェックボックスを
追加する
必要があります。
実際には、テンプレート
管理をちゃんと
行う
意識は
重要で、モジュールアップデートよりも、tplsadminを
利用して、どのようなテンプレートの
差分があるかを
理解しながら、テンプレートを
更新するのがベストです。
V3 では、クッキーへの
保存形式を
若干変えることで、
安全性が
多少マシになりました。
期限付きでmd5エンコードされたパスワードしかクッキーに
保存しませんので、
誰かがクッキーを
盗んだとしても、その
期限以降であればログインに
成功しません。
つまり、オートログイン
有効期限が
重要なわけで、デフォルトの1
週間を1
ヶ月や1
年に
延長すると、それだけ
危険性が
増すことに
留意ください。
オートログインV2で、リトライ
機能がつきました。
従来のオートログインHackでは、CSRF
対策のために、いきなりコンテンツにアクセスするとトップに
飛ばされることが
多くありましたが、
今はいったんsession_confirm.phpにリダイレクトしてから、
元の
場所に
戻ります。
このsession_confirm.phpがV2で
増えたファイルです。
忘れずにアップロードしてください。
また、
何か
投稿した
時にセッションが
時間切れで、
投稿内容をロストした、という
経験をお
持ちの
方も
少なくないと
思いますが、このオートログインV2を
有効にしているユーザであれば、
再度自動ログインして、
直後に
再投稿の
機会が
与えられます。(V2の
目玉機能)
このHackは、unameとmd5ハッシュ
済のパスワードをクッキーに
保存するのですが、その
有効時間は、デフォルトで1
週間(604800)となっています。
もし、この
値を
変更したい
場合は、mainfile.php
に
対して
下のように1
行追加して
下さい。
define('XOOPS_AUTOLOGIN_LIFETIME',2678400);
この
行は
少なくとも、include XOOPS_ROOT_PATH."/include/common.php";
と
書かれた
行より
上にある
必要があります。
また、
言語ファイル (langage/japanese/global.php)
に
手を
入れている
方は、このファイルを
上書きするのではなく、ご
自身で
書き
換えてください。
define('_USERNAME','ユーザID または e-mail: '); // 書き換え
define('_REMEMBERME','IDとパスワードを記憶'); // 追加
define('_RETRYPOST','時間切れでした。再投稿しますか?'); // 追加
これは
重要な
注意点ですが、クッキーにログイン
情報が
残っているということは、
当然、
誰かに
盗まれる
可能性があります。
共用コンピュータなどをご
利用の
際には、
必ずログアウトしてから
終了するようにアナウンスする
必要があるでしょう。
従前の
自動ログインHackでは、
自動ログインの
有効期限として、session_expireの
値を
流用していましたが、こうしてしまうと、カスタムセッション
機能が
事実上使えなくなってしまうため、XOOPS_AUTOLOGIN_LIFETIME
という
定数で
指定する
方式に
改めています。
それと、このアーカイブを
上書きすると、emailアドレスでもログインできるHackも
自動的に
有効になります。
これだけ
書くと、RyujiさんのemailLoginHackと
同じじゃないか、と
思われそうですが、あそこまできちんと
作っていません。ユーザー
名として
送られてきた
文字列に、@
が
含まれていれば、email
によるログインだと
推定してログインを
試す、というだけのHackです。
逆に
言えば、その
分、Hack
箇所も
少なくて
済んでいます。
基本的には、include/checklogin.php
だけの
変更ですので、コアバージョンへの
追随も
少しは
楽になるかもしれません。
最近のショッピングサイトでは、
会員番号でもメールアドレスでも
受け
付ける、というものが
増えてきているので、それなりに
受入れやすいHackではないでしょうか。
また、include/common.php
などは、
他のHackとバッティングしやすいので、
上書きされると
困るケースもあるでしょう。その
場合は、このアーカイブの
各ファイルについて、'GIJ'という
文字列で
検索すれば、Hack
箇所がどこか、すぐに
判るはずです。
by GIJOE
http://www.peak.ne.jp/xoops/