[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт авторизации
Страницы: 1, 2
inpost
Valick
"я так понимаю один и тот же пароль даёт разный хеш?"
Да, именно так.

"Получается только в том выгода, что алгоритм менее затратный по ресурсам по сравнению с обычным хешированием?"
Пишут, что сложнее расшифровать. Но так как я в расшифровках не разбираюсь, то лично сказать не могу.

Разработчики ПХП развиваются и улучшают функционал хеширования, сейчас посчитали, что это наиболее эффективный способ, остаётся доверять их профессиональному мнению.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Valick
Цитата
Пишут, что сложнее расшифровать.

Зачем расшифровывать то что называется хеш? smile.gif
Когда мы не "храним яйца в одной корзине" соль отдельно, а хеш отдельно, то в этом есть смысл, так как слив базу надо еще и постараться достать соль. Здесь же каким бы ни был мудрёным алгоритм шифрования соль содержится в самом хеше (на кой хрен она тогда нужна, для меня лично остаётся загадкой), достаточно использовать функцию password_verify(), которая принимает два аргумента: чистый пароль и его хеш, дальше брутофорс по словарю и дело в шляпе. Т.е кроме самого хеша, нам нафиг больше ничего не надо для взлома.
А учитывая то что с этой байдой, как ты и говорил, нельзя работать на уровне СУРБД, то вообще эта хрень под вопросом.
___
Может и не всё так грустно, и просто я не до конца понял философию password_hash smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
Guest
А сама функция secureInput() отвечает требованиям безопасности, ее стоит переделовать?
I++
inpost, ты правильные советы даешь, но подключение PDO новичком это же адовы муки...
Я вот сейчас код этот посмотрел, подумал, что бы написать... и у меня получилась в уме целая мегатонна кода, на который скорее всего забьют и будут дальше писать как раньше, ну, то, что в первом топике.

Цитата
secureInput
это чистой воды говнокод.

[b]mysql_real_escape_string - космический говнокод.

Нужно использовать prepared statements http://php.net/manual/ru/pdo.prepare.php

Цитата
if (strlen($passw) < 6 or strlen($passw) > 30)


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

И так, чтобы побыстрому и поменьше, нужно всю работу с СУБД вынести через PDO или MYSQLi я советую PDO, потому что, в MYSQLi я какой-то баг давно нашел, связанный кажется как раз с привязкой значений от чего нефига не работало, поэтому юзаю всегда PDO.
---------
Вспомнил, что за баг, там динамически нельзя создавать привязку :lol: Я ленивая жопа у меня есть функция lazyass(string $sql_query, mixed $params, ...)
Я сразу ввожу sql запрос и параметров сколько нужно, а функция сама собирает запрос... В MYSQLi такое не канало.

Второе, вывод всех недоверенных данных пользователю нужно делать через например такое:

Это не законченный вариант, а выдраный кусок, проверку на массив или нет, у меня в другом месте.

function safety($vars)
{
foreach($vars as $key => $val)
{
if(is_array($val))
$vars[$key] = safety($val);
else
{
if(!(is_int($val) || is_float($val)))
$vars[$key] = htmlspecialchars($val, ENT_QUOTES);
}
}

return $vars;
}


Можно скормить как массив так и обычную переменную. Я ленивая жопа, поэтому скармливаю сразу массив полученный из базы.
Так как я ленивая жопа, у меня все, что идет на вывод автоматом скармливается этой функции, поэтому если я упорюсь, ничего страшного не произойдет, если мне нужен сырой вывод, я скармливаю данные функции которая выводит сырые данные, а подефолту все ходит через это.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.