Безопасный вход PHP CodeIgniter - PullRequest
0 голосов
/ 16 ноября 2010

Я создаю часть входа в приложение CodeIgniter, используя простой класс входа в качестве отправной точки. Все работает нормально, но я не уверен в различиях между типами шифрования и тем, что использовать.

Я использовал функцию crypt () с паролем пользователя в качестве соли (через md5), вот так:

$pass == crypt($_POST['login_password'], md5($_POST['login_password']))

Этот метод в порядке, или есть явная ошибка в этом подходе? Это кажется безопасным, поскольку ни пароль, ни соль не хранятся в базе данных. Или это немного очевидно?

Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 16 ноября 2010

Есть также встроенная библиотека шифрования, предоставляемая codeigniter. Вы предоставляете "соль" в вашем config (application / config / config.php) $ config ['encryption_key']

Несмотря на то, что он может быть «расшифрован», он вполне безопасен:

$this->load->library('encrypt');
//encryption
$pass = $this->encrypt->encode($this->input->post('login_password'));
3 голосов
/ 16 ноября 2010

http://php.net/manual/en/faq.passwords.php

Это правильный способ реализации паролей.

Все, что ниже, не имеет значения.


С тем, что у вас есть, просто

$pass = md5($_POST['login_password'] . "somerandomchars");

в большинстве случаев будет достаточно, если не требуется высокий уровень безопасности.

Если вы используете CodeIgniter, я настоятельно рекомендую заглянуть в плагин аутентификации TankAuth .

1 голос
/ 03 декабря 2012

используйте $pass = do_hash($this->input->post('password')); и включите security_helper в свой autoload.php

1 голос
/ 16 ноября 2010

В современных приложениях пароль сайта не хранится в крипте. Использование значения хеша с солью намного безопаснее (если кто-то взломает вашу базу данных, там нет пароля. Только хеш пароля, который они не могут использовать для входа в систему), и крипта действительно не очень безопасна. К сожалению, у MD5 тоже есть проблемы, поэтому я бы предложил использовать SHA512 в качестве хэша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...