redis默认是没有密码的, 但绑定到本机ip使用,当前增加安全要求对redis用密码访问ThinkPHP的3.2.3版本 (路径为 Library\Think\Cache\Driver\Redis.class.php 以及Library\Think\Session\Driver\Red...
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']);
}
}
相关资源:PHP实现Redis单据锁以及防止并发重复写入_thinkPHP使用redis防止...
原文来源:https://blog.csdn.net/weixin_33514582/article/details/115622678
来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。
Copyright©2013-2024 JSedu114 All Rights Reserved. 江苏教育信息综合发布查询平台保留所有权利
苏公网安备32010402000125 苏ICP备14051488号-3技术支持:南京博盛蓝睿网络科技有限公司
南京思必达教育科技有限公司版权所有 百度统计