Безопасна ли эта процедура авторизации / входа? - PullRequest
1 голос
/ 05 декабря 2011

Достаточно ли безопасна эта техника?Могу ли я доверять таким сессиям?Или я должен что-то добавить?

Auth -модуль

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.';
        }
    }
}

Ответы [ 2 ]

1 голос
/ 05 декабря 2011

Единственная уязвимость, которую я вижу, это CWE-706 - использование одного способа с предсказуемой солью .Каждый пароль должен иметь свою собственную уникальную соль.bcrypt не является плохим методом хеширования паролей, потому что он не может быть эффективно реализован на GPU или FPGA.

Стиль кода немного параноидален, и это неплохо.Ваши операторы сравнения немного чрезмерны.Убедитесь, что вы читаете нечеткую печать php , чтобы не ошибиться в будущем.

0 голосов
/ 07 декабря 2011

Эта техника достаточно безопасна. Я мог бы доверять таким сессиям.

...