Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 此身份验证/登录过程安全吗?_Php_Security_Session_Authentication_Kohana - Fatal编程技术网

Php 此身份验证/登录过程安全吗?

Php 此身份验证/登录过程安全吗?,php,security,session,authentication,kohana,Php,Security,Session,Authentication,Kohana,这种技术足够安全吗?我能相信这样的会议吗?或者我应该补充点什么 身份验证-模块 class Auth { public function login($user, $pass, $random_unique_salt) { if ($this->_bcrypt($pass, $random_unique_salt) === 'correct password hash') // etc. { // Success..

这种技术足够安全吗?我能相信这样的会议吗?或者我应该补充点什么

身份验证-模块

class Auth {

    public function login($user, $pass, $random_unique_salt)
    {
        if ($this->_bcrypt($pass, $random_unique_salt) === 'correct password hash') // etc.
        {
            // Success...
            $session = Session::instance();
            $session->set('login', TRUE);
            $session->regenerate();
        }
    }
}
基础-控制器

class Controller_Base extends Controller {

    protected $_login = FALSE;

    public function before()
    {
        $this->_login = Session::instance()->get('login', FALSE);
    }
}
class Controller_Membersonly extends Controller_Base {

    public function action_index()
    {
        if ($this->_login === TRUE)
        {
            // Success...
            echo 'Show (safely?) some secrets.';
        }
    }
}
仅限成员-控制器

class Controller_Base extends Controller {

    protected $_login = FALSE;

    public function before()
    {
        $this->_login = Session::instance()->get('login', FALSE);
    }
}
class Controller_Membersonly extends Controller_Base {

    public function action_index()
    {
        if ($this->_login === TRUE)
        {
            // Success...
            echo 'Show (safely?) some secrets.';
        }
    }
}

我看到的唯一弱点是。每个密码都需要有自己独特的salt。bcrypt不是一种糟糕的密码散列方法,因为它无法在GPU或FPGA上高效实现


代码风格有点偏执,不是一件坏事。您的比较运算符有点过多。一定要仔细阅读,以免将来犯错误

我看到的唯一漏洞是。每个密码都需要有自己独特的salt。bcrypt不是一种糟糕的密码散列方法,因为它无法在GPU或FPGA上高效实现


代码风格有点偏执,不是一件坏事。您的比较运算符有点过多。一定要仔细阅读,以免将来犯错误

这种技术足够安全。我可以信任这样的会话。

这种技术足够安全。我可以信任这样的会话。

稍微有点过时,但您的密码哈希方案似乎没有使用salt。你用的是什么杂凑法?一些普通的md5/sha-x,或者一个为密码散列而设计的函数,比如bcrypt?这只是一个随机的例子,这就是为什么会有注释//等。bcrypt是一个不错的选择。好:)顺便说一句,我建议删除你的一个标记,而使用“php”标记。一些能够回答这个问题的人可能会把“php”作为最喜欢的标签,但你的任何一个都没有。稍微有些夸张,但看起来你的密码哈希方案没有使用salt。你用的是什么杂凑法?一些普通的md5/sha-x,或者一个为密码散列而设计的函数,比如bcrypt?这只是一个随机的例子,这就是为什么会有注释//等。bcrypt是一个不错的选择。好:)顺便说一句,我建议删除你的一个标记,而使用“php”标记。一些能够回答这个问题的人可能会把“php”作为最喜欢的标签,但你的任何人都不会。谢谢你的输入!此代码示例不完整$random_unique_salt是指不可预测的salt。@stacknoob是的,但每个密码都必须是唯一的,它应该是登录函数的一个参数。也可以在login-method中为每个密码生成唯一的salt,但在参数中添加$random_unique_salt是有意义的,因为本例中没有实现salt生成器。感谢您的输入!此代码示例不完整$random_unique_salt是指不可预测的salt。@stacknoob是的,但每个密码都必须是唯一的,它应该是登录函数的一个参数。也可以在login-method中为每个密码生成唯一的salt,但在参数中添加$random_unique_salt是有意义的,因为本例中没有实现salt生成器。