PHP

爲Thinkphp3.2.3當中的Redis操作類增加強制密碼檢查

字號+ 編輯: 国内TP粉 修訂: IT男在阿里 來源: ThinkPHP 2023-09-12 我要說兩句(0)

本文講述如何在thinkphp3.2.3當中的redis操作類文件進行安全性補充。

redis默认是没有密码的, 但绑定到本机ip使用,当前增加安全要求对redis用密码访问

ThinkPHP的3.2.3版本 (路径为 Library\Think\Cache\Driver\Redis.class.php 以及Library\Think\Session\Driver\Redis.class.php) 的代码需要补充安全设定。

构造方法需要增加最后三行内容

    public function __construct($options = [])
    {
        if (!extension_loaded('redis')) {
            E(L('_NOT_SUPPORT_') . ':redis');
        }
        $data_redis_db = C('REDIS_DB');
        $options       = array_merge([
            'host'       => C('REDIS_HOST') ?: '127.0.0.1',
            'port'       => C('REDIS_PORT') ?: 6379,
            'timeout'    => C('DATA_CACHE_TIMEOUT') ?: false,
            'persistent' => false,
            'auth'       => C('REDIS_AUTH') ? C('REDIS_AUTH') : false,
            'db'         => empty($data_redis_db) ? 0 : $data_redis_db,
        ], $options);

        $this->options           = $options;
        $this->options['expire'] = isset($options['expire']) ? $options['expire'] : C('DATA_CACHE_TIME');
        $this->options['prefix'] = isset($options['prefix']) ? $options['prefix'] : C('DATA_CACHE_PREFIX');
        $this->options['length'] = isset($options['length']) ? $options['length'] : 0;
        $func                    = $options['persistent'] ? 'pconnect' : 'connect';
        $this->handler           = new \Redis;
        $options['timeout'] === false ?
        $this->handler->$func($options['host'], $options['port']) :
        $this->handler->$func($options['host'], $options['port'], $options['timeout']);
        // 增加代码,设置redis安全性,增加认证密码
        if (isset($options['auth']) && $options['auth']) {
            $this->handler->auth($options['auth']);
        }
    }


閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: PHP+JS聊天群

相關課文
  • mac開發接入微信公衆號接口返回報錯 cURL error 56: SSLRead() return error -9806

  • pecl安裝程序時報錯Array and string offset access syntax with curly braces is no longer supported

  • PHP的換行符是什麽

  • 由於商家傳入的H5交易參數有誤,該筆交易暫時無法完成,請聯系商家解決

我要說說
網上賓友點評