Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Безопасность хранения паролей в БД [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Описание: Кто что посоветует?
Саныч Модератор
Отправлено: 05 Февраля, 2012 - 19:35:24
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Самогонщик пишет:
без ява-скрипт такой способ не заведётся.
Почему? Не понял
Для этого вобще javascript не нужен... Да и вобще, это конечно мое мнение, но где речь идет о безопасности и хранении данных говорить о javascript-е вобще не уместно.

DlTA пишет:
это имеется ввиду вообще отказаться от логирования пользователей
или что?
Банальный пример, в базе данных, в таблице с пользователями у нас всего 2 колонки: id и скажем data. Ну id понятно, а data - это все данные о пользователе, сохраненные в каком-то виде, скажем сереализованы, и зашифрованы. А вот ключ для шифровки/расшифровки генерируется исходя из пароля пользователя, можно пароля и логина, e-mail-а ну и т.д. Т.е. сам пароль мы нигде не храним и данные пользователя даже в случае утечки БД ничего не стоят... Единственные слабые места в такой схеме - это генерация ключа на базе пароля и невозможность востановления утраченого пароля...


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
IllusionMH
Отправлено: 05 Февраля, 2012 - 19:37:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




DlTA, использовать для авторизации сторонние сервисы: OpenID или соц.сети
 
 Top
Самогонщик
Отправлено: 05 Февраля, 2012 - 19:37:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




DlTA, ни в коем случае
(Добавление)
Саныч, http://habrahabr[dot]ru/blogs/web_security/121021/ я вот об этом, авторизация есть, хранения (передачи) пароля нет.
 
 Top
Саныч Модератор
Отправлено: 05 Февраля, 2012 - 19:42:21
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




IllusionMH пишет:
DlTA, использовать для авторизации сторонние сервисы: OpenID или соц.сети
А?! нехороший и ненадежный вариант. Конечно когда речь идет о каком-нибудь форуме, блоге или тому подобному, то да можно использовать. Но если речь идет о действительно конфиденциальных данных - ни в коем случае.


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
IllusionMH
Отправлено: 05 Февраля, 2012 - 19:51:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Саныч, если нужно хранить конфиденциальные данные, за советом на форумы не идут ;)

Да и если слили базу с паролями, то скорее всего база с данными могла тоже уйти(но не всегда).
Ведь одна из причин - препятствие зайти под логином/паролем человека, и выдавать себя за него.
(Добавление)
Саныч пишет:
Т.е. сам пароль мы нигде не храним и данные пользователя даже в случае утечки БД ничего не стоят... Единственные слабые места в такой схеме - это генерация ключа на базе пароля и невозможность востановления утраченого пароля...

Хорошая схема. Восстановление можно сделать по ключевой фразе, но тут опять таки появляется уязвимость.
 
 Top
Саныч Модератор
Отправлено: 05 Февраля, 2012 - 20:07:59
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




IllusionMH пишет:
Хорошая схема. Восстановление можно сделать по ключевой фразе, но тут опять таки появляется уязвимость.
Можно, но ненадежно...
Я лично вижу в такой ситуации востановление пароля в таком виде:
0) делаем еще 3 столбец БД, в котором храним хеш всех данных пользователей
1) при запросе востановить пароль, просим ввести пользователя все его данные.
2) ну дальше все просто, хеширем и ищем такой хеш в БД. Если есть - перешифровываем его данные уже новым паролем.
Сделать вобще можно все. Таже самая генерация ключа на базе пароля после тщательной проработки становится вполне надежной.

При такой схеме самым уязвимым "местом" становится сам пользователь. Вернее то, как многие пользователи хранят свои пароли. Стикер на мониторе, текстовый файл на рабочем столе и т.д. Улыбка


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
IllusionMH
Отправлено: 05 Февраля, 2012 - 20:27:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Саныч, точно, а я думал о хитро вымученных способах проверки, а все оказывается гораздо проще - общий хэш. Перекрутил )
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB