[mlimg]
[xlang:en]

   == AUTO-LOGIN V3 (REMEMBER ME) hacked files for XOOPS 2.0.16aJP ==

------------------------------------------------------------------

Hacked core files to be able to login automatically (+ alpha).
This package is for XOOPS 2.0.16aJP


[b]USAGE:[/b]
1) Overwrite these files into your XOOPS 2.0.16aJP
2) update system module. If you are using a custom template set you will need
to edit or delete the system_block_login.html for that set by template
manager.

AUTO-LOGIN V3 is a little safer than V2.
V3 stores user's password as md5 encoded with time limitation.
If cookie is stolen by someone, he can't login after auto-login expiration.
This means that short expiration makes your site a little bit safer.

The feature of Retry or Repost is implemented with AUTO-LOGIN V2.

- You can access dynamic contents directly with autologin without CSRF
  vulnerablities.

- You can retry to post even if you are timed-out from the session.

These features are implemented in session_confirm.php.
Don't forget uploding this file.


If you want to set the life time of remembering, insert a line into
mainfile.php like this:
[code]
define('XOOPS_AUTOLOGIN_LIFETIME',2678400);
[/code]
This example specifies the life time as 1 month.
The default value is 604800 (= 1week).

The prior version of auto-login hacks useed the value of session_expire.
But this hack harms customizing session.
Thus I've changed the code like above.


This hack stores the password as an MD5 hash on the client, but this is
vulnerable to dictionary attacks, and simple copying to another computer.

This hack is a potential security hole, don't enable it lightly.


[b]HACKED POINTS:[/b]

You can easily find hacked points by searching the words 'GIJ'.
If you use customized language files or some language files other than english
or japanese, you should manually add a line into language/(your
language)/global.php

[code]
define('_REMEMBERME','remember me'); // describe with your language
define('_RETRYPOST','Time-out. Do you post again?');
[/code]

And if you can, edit this line.

[code]
define('_USERNAME','username or email: '); // describe with your language
[/code]


[b]ABOUT + ALPHA:[/b]

This hack also modifies your XOOPS can be logged in by email.
Users can login not only uname+password but also email+password.
Of course, even the users logged in by email+password can login automatically
on/after next access.



[/xlang:en]
[xlang:ja]

●XOOPS 2.0.16aJP用のオートログインハック(+α)済みコアファイルパック (V3)

--------------------------------------------------

XOOPS 2.0.16aJP
に自動ログイン機能を付与するためのパッチです。
このアーカイブ内に含まれる全ファイルを、お使いのXOOPS 2.0.16aJP
に上書きすることで、自動ログイン機能が有効になります。

さらに、上書き後のシステムモジュールアップデートで、「IDとパスワードを記憶」というチェックボックスが表示されます。なお、カスタムテンプレートセットを利用している場合は、テンプレートマネージャに入り、ご利用のテンプレートセット内のシステム管理のsystem_userform.htmlおよびsystem_block_login.htmlを削除する、または手作業でチェックボックスを追加する必要があります。

実際には、テンプレート管理をちゃんと行う意識は重要で、モジュールアップデートよりも、tplsadminを利用して、どのようなテンプレートの差分があるかを理解しながら、テンプレートを更新するのがベストです。

V3 では、クッキーへの保存形式を若干変えることで、安全性が多少マシになりました。
期限付きでmd5エンコードされたパスワードしかクッキーに保存しませんので、誰かがクッキーを盗んだとしても、その期限以降であればログインに成功しません。
つまり、オートログイン有効期限が重要なわけで、デフォルトの１週間を１ヶ月や１年に延長すると、それだけ危険性が増すことに留意ください。

オートログインV2で、リトライ機能がつきました。従来のオートログインHackでは、CSRF対策のために、いきなりコンテンツにアクセスするとトップに飛ばされることが多くありましたが、今はいったんsession_confirm.phpにリダイレクトしてから、元の場所に戻ります。

このsession_confirm.phpがV2で増えたファイルです。忘れずにアップロードしてください。

また、何か投稿した時にセッションが時間切れで、投稿内容をロストした、という経験をお持ちの方も少なくないと思いますが、このオートログインV2を有効にしているユーザであれば、再度自動ログインして、直後に再投稿の機会が与えられます。（V2の目玉機能）


このHackは、unameとmd5ハッシュ済のパスワードをクッキーに保存するのですが、その有効時間は、デフォルトで１週間(604800)となっています。

もし、この値を変更したい場合は、mainfile.php
に対して下のように１行追加して下さい。
[code]
define('XOOPS_AUTOLOGIN_LIFETIME',2678400);
[/code]
この行は少なくとも、include XOOPS_ROOT_PATH."/include/common.php";
と書かれた行より上にある必要があります。

また、言語ファイル (langage/japanese/global.php)
に手を入れている方は、このファイルを上書きするのではなく、ご自身で書き換えてください。

[code]
define('_USERNAME','ユーザID または e-mail: '); // 書き換え
[/code]

[code]
define('_REMEMBERME','IDとパスワードを記憶'); // 追加
define('_RETRYPOST','時間切れでした。再投稿しますか？'); // 追加
[/code]


これは重要な注意点ですが、クッキーにログイン情報が残っているということは、当然、誰かに盗まれる可能性があります。共用コンピュータなどをご利用の際には、必ずログアウトしてから終了するようにアナウンスする必要があるでしょう。


従前の自動ログイン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/
[/xlang:ja]
