hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

19年10月19日(Sat) 0時28分
TOP » フォーラム » XOOPS » XOOPS一般 » ユーザー認証の暗号化トラブル

ユーザー認証の暗号化トラブル


Posts tree


Previous post - Next post | Parent - Children.1 | Posted on 2019-4-6 11:26 | Last modified
naaon  常連さんスーパー!   Posts: 192

nao-ponさん、こんにちは。

ごぶさたしております。
トラブル時しか連絡しないですみません。

2018年の→訂正、3月ごろから、(私のサーバー引っ越しに伴い?) XCLのDB保存時のパスワードが、MD5から、もっと長い文字列に変わって以降のトラブルです。
パスワードの暗号化文字列が、「$2y$10$・・・」でDB保存されています。文字数は60文字です。
MD5ではなさそうですね。。

ところが、XCLでログイン時に照合するパスワードが、以前のMD5のものだと照合されログインが通るのですが、上記の暗号化ですと照合されずログインできません。
(追記:「パスワードが間違っています」でリダイレクトされます)
(追記:こちらの[user] replaceable password hashing and use `password_hash()` as default が関係していますでしょうか。。)
(追記)「Emaillogin.class.php」プリロード、CubeUtilsモジュールを使っています。

環境は以下です。 どこを見たらよいか、お心当たりがありましたら教えていただけますでしょうか。
どうぞよろしくお願いします。

サイト/システム情報
Distribution : XOOPS X(ten) 20181220
XC Legacyバージョン : XOOPS Cube Legacy 2.2.3 Beta 1
デフォルト・サイトテーマ : 4seasons
デフォルトのテンプレート・セット : 20171105
使用言語 : ja_utf8
デバッグモードを有効にする : オフ
オペレーティングシステム : Linux n
サーバー : nginx/1.10.3
ユーザーエージェント : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36
PHPバージョン : 7.0.27-0+deb9u1
MySQLのバージョン : 10.1.23-MariaDB-9+deb9u1

PHPの設定
セーフモード : オフ
最大実行時間 : 30 sec.
メモリ制限 : 128Mb
表示エラー : オフ
ショートオープンタグ : オフ
ファイルをアップロード : オン ( アップロード最大ファイルサイズ:2M, Post最大サイズ:8M )
マジッククオート : オフ
グローバル変数の登録 : オフ
出力バッファリング : オン
open_basedir : オフ
url_fopenを許可 : オン (recommended OFF)
DOMの拡張 : はい
exifの拡張 : はい
gettextの拡張 : はい
JSONの拡張 : はい
XMLを有効 : はい
Curlの拡張 : はい
Zlibを有効 : はい
Soapの拡張 : いいえ (required by recent modules)
Mbstringを有効 : はい
Iconvの利用 : はい
GDの拡張 : はい
GD Version: 2.2.4
GDの拡張 Image create Truecolor

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2019-4-7 0:25
naaon  常連さんスーパー!   Posts: 192

nao-ponさん
とりあえず、html/modules/user/preload/Primary/EncryptPassword.class.php の
public function passwordVerify(&$result, $password, $hash) を以下のようにコメントアウトして、従来のmd5で仮運用しています。

運用中のサイトで、md5と、salt有効の暗号化hahを同時に自動判別して有効かする手段は無いでしょうか? :thinking:

1
2
3
4
5
6
7
8
9
    public function encryptPassword(&$password)
    {
        $input = $password;
        //if ($this->useNativeHashing) {
        //    $password = password_hash($input, PASSWORD_DEFAULT);
        //} else {
            $password = md5($input);
        //}
    }
Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2019-4-7 11:42 | Last modified
nao-pon  Webmaster From: 愛知県  Posts: 5802

naaon さn、こんにちは!

たぶん、Emaillogin.class.php が原因だと思うので、次のファイルと差し替えてみてください。
ただ、全く検証していないので動作確認していただけると助かります。

追記
auto re-hash の部分は再考の余地がありコメントアウトしました。また今度考えますね。
追記その2
auto re-hash の処理を修正して、簡単な検証を行いました。何か問題があればお知らせください。
fileUser_EmailLogin.class_1.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
 
if( ! defined( 'XOOPS_ROOT_PATH' ) ) exit ;
 
class User_EmailLogin extends XCube_ActionFilter
{
    function preFilter()
    {
        $root = XCube_Root::getSingleton();
        $root->mDelegateManager->add('Site.CheckLogin', array($this , 'checkLogin') ) ;
    }
 
    function checkLogin(&$xoopsUser)
    {
        if (is_object($xoopsUser)) {
            return;
        }
 
        $root = XCube_Root::getSingleton();
        $root->mLanguageManager->loadModuleMessageCatalog('user');
 
        $userHandler = xoops_getmodulehandler('users', 'user');
        
        $criteria = new CriteriaCompo();
        $criteria->add(new Criteria('email', xoops_getrequest('uname')));
        $userArr = $userHandler->getObjects($criteria);
        if (count($userArr) != 1) {
            return;
        }
 
        $pass = xoops_getrequest('pass');
        $hash = $userArr[0]->get('pass');
        if (! User_Utils::passwordVerify($pass, $hash)) {
            return;
        }
        
        if ($userArr[0]->get('level') == 0) {
            // TODO We should use message "_MD_USER_LANG_NOACTTPADM"
            return;
        }
        
        $handler =& xoops_gethandler('user');
        $user =& $handler->get($userArr[0]->get('uid'));
        
        if (is_callable(array($user, "getNumGroups"))) { // Compatible for replaced handler.
            if ($user->getNumGroups() == 0) {
                return;
            }
        } else {
            $groups = $user->getGroups();
            if (count($groups) == 0) {
                return;
            }
        }
        
        // auto re-hash
        if (User_Utils::passwordNeedsRehash($hash)) {
            $user->set('pass', User_Utils::encryptPassword($pass), true);
            if (!$handler->insert($user, true)) {
                // set $passwordNeedsRehash
                User_LegacypageFunctions::$passwordNeedsRehash = ture;
            }
        }
 
        $xoopsUser = $user;
 
        //
        // Regist to session
        //
        $root->mSession->regenerate();
        $_SESSION = array();
        $_SESSION['xoopsUserId'] = $xoopsUser->get('uid');
        $_SESSION['xoopsUserGroups'] = $xoopsUser->getGroups();
    }
}
Votes:1 Average:10.00
Reply
Previous post - Next post | Parent - No child | Posted on 2019-4-7 21:07
naaon  常連さんスーパー!   Posts: 192

nao-ponさん

早速のpreload、ありがとうございます!

試してみました。無事に新旧どちらの暗号化passでも、ログインできました。 :thumb_up:
これで安心して使えます。ありがとうございました。

Votes:0 Average:0.00
Reply

Post into this topic

Subject
guestname
Body

  Advanced search

このカテゴリのトピック一覧
このフォーラムのトピック一覧
  1. xelFinder内にある画像が表示されない(8) addlife 2019-10-11 20:15
  2. ユーザー認証の暗号化トラブル(3) naaon 2019-4-7 21:07
  3. CKEditor4のサイズ指定(7) addlife 2019-4-5 8:51
  4. xupdateの管理画面が表示できません(5) nao-pon 2019-2-7 23:41
  5. phpMyAdmin のインポートでエラー(3) kamezou 2018-12-24 3:06
  6. xoopsのインストールでFatalエラー(3) kamezou 2018-12-21 2:11
  7. Backend.phpでFatalエラー 表示できません。(7) ゲスト 2018-12-12 18:47
  8. ssl証明書エラー(2) shinjou 2018-11-27 4:18
  9. GnaviにてGoogleマップが正しく読み込まれませんでした(3) neko88 2018-9-27 17:30
  10. picoでCKEditro4が表示されなくなった件について。(1) taroj 2018-5-23 3:57
このページのTopへ
ログイン
ユーザ名:

パスワード:

オートログイン

Basic 認証

Register now! | Lost Password?



メインメニュー
ブックマーク
Please log in to use it.
[Login]
サイト内 Wiki
☆ 検索 ☆



高度な検索(サイト内)
FireFox検索プラグイン
オンライン状況
合計 40 人がオンライン中 :-)
(フォーラム : 1 人)

登録ユーザ: 0 & ゲスト: 40

もっと...
サイト情報
管理人

nao-pon
 

登録ユーザ数: 4616


Web Services by Yahoo! JAPAN
楽天ウェブサービスセンター
Amazon.co.jpアソシエイト
現在ページのQRコード
現在ページのQRコード
[携帯対応]
参照元情報
No trackback