首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Sabre DAV的PDO类中获取用户的明文密码?

如何在Sabre DAV的PDO类中获取用户的明文密码?
EN

Stack Overflow用户
提问于 2021-05-07 16:47:34
回答 1查看 67关注 0票数 0

如何在Sabre DAV库的以下文件中获取当前登录用户的明文密码?

代码语言:javascript
运行
复制
https://github.com/sabre-io/dav/tree/master/lib/CardDAV/Backend

in Baikal, this file is at:
\baikal\vendor\sabre\dav\lib\CardDAV\Backend\PDO.php
代码语言:javascript
运行
复制
<?php

declare(strict_types=1);

namespace Sabre\CardDAV\Backend;

use Sabre\CardDAV;
use Sabre\DAV;
use Sabre\DAV\PropPatch;

/**
 * PDO CardDAV backend.
 *
 * This CardDAV backend uses PDO to store addressbooks
 *
 * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
 * @author Evert Pot (http://evertpot.com/)
 * @license http://sabre.io/license/ Modified BSD License
 */
class PDO extends AbstractBackend implements SyncSupport
...
...
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-07 22:26:51

对于基本身份验证,文件如下:

\baikal\Core\Frameworks\Baikal\Core\PDOBasicAuth.php

明文密码位于validateUserPass函数中,可以存储在全局变量中(或者存储在问题注释中提到的会话中):

代码语言:javascript
运行
复制
function validateUserPass($username, $password) {
        
        global $ptp;
        
        $stmt = $this->pdo->prepare('SELECT username, digesta1 FROM ' . $this->tableName . ' WHERE username = ?');
        $stmt->execute([$username]);
        $result = $stmt->fetchAll();

        if (!count($result)) {
            return false;
        }

        $hash = md5($username . ':' . $this->authRealm . ':' . $password);
        if ($result[0]['digesta1'] === $hash) {
            $this->currentUser = $username;
            
            $ptp = $password;
                    
            return true;
        }

        return false;
    }
}

然后,在\baikal\vendor\sabre\dav\lib\CardDAV\Backend\PDO.php文件中,可以使用global $ptp;检索$ptp变量的值

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67431732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档