Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   У меня вопрос про безопасность и cookies (https://javascript.ru/forum/misc/25229-u-menya-vopros-pro-bezopasnost-i-cookies.html)

Livaanderiamarum 29.01.2012 17:10

У меня вопрос про безопасность и cookies
 
Если человек залогинился его имя и пароль нужно сохранить ему в cookies и чтобы он при каждой попытке зайти на сайт отправлял нам их браузером автоматически и мы бы сразу знали что он залогинен.

Но эти куки можно украсть у человека, за сунуть их к себе в браузер и сидеть на сайте так, как будто ты - он.

По этому нужно как то зашифровать пароли в cookies, а так же привязать их к определенному браузеру и определенной машине.

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

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

А как делаете вы обычно?

trikadin 29.01.2012 17:16

http://www.softtime.ru/bookphp/gl8_1.php

Livaanderiamarum 29.01.2012 17:25

что мне помешает использовать куку друга в своем браузере?

Keeper 29.01.2012 17:33

Ребят, кука сама по себе не безопасна, её легко стырить )

Как вариант - генерить хеш с участием IP.
Вот кстати интересно как том же ВК делается? )

trikadin 29.01.2012 17:33

Livaanderiamarum, ничто не помешает. От тырки кук никто не застрахован.

devote 29.01.2012 17:57

лично я хеш генерю исходя из:

имени пользователя, текущего пароля (тоесть хеша пароля), дополнительный внутренний ключ ( passkey ), идентификатора пользователя.

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

monolithed 29.01.2012 18:00

Цитата:

Сообщение от devote
имени пользователя, текущего пароля (тоесть хеша пароля), дополнительный внутренний ключ ( passkey ), идентификатора пользователя.

Еще нужно IP добавить

devote 29.01.2012 18:02

Цитата:

Сообщение от monolithed
Еще нужно IP добавить

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

Livaanderiamarum 29.01.2012 18:39

Ты учитываешь данные из юзерагента?
Так же интересно как боритесь с переходами по вредоносным ссылкам эмитирующими действия пользователя

Keeper 29.01.2012 19:34

Цитата:

Сообщение от devote (Сообщение 153966)
лично я хеш генерю исходя из:
имени пользователя, текущего пароля (тоесть хеша пароля), дополнительный внутренний ключ ( passkey ), идентификатора пользователя.

Доп. ключ - для разделения где он зашел (дом, работа, друг) ???

devote 29.01.2012 19:43

Цитата:

Сообщение от Keeper
Доп. ключ - для разделения где он зашел (дом, работа, друг) ???

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

Serg_pnz 29.01.2012 19:46

Вот еще подход интересный - на id сессий (смотреть надо именно комментарий по якорю) http://habrahabr.ru/blogs/php/13726/#comment_262346

devote 29.01.2012 20:02

Цитата:

Сообщение от Serg_pnz (Сообщение 153984)
Вот еще подход интересный - на id сессий (смотреть надо именно комментарий по якорю) http://habrahabr.ru/blogs/php/13726/#comment_262346

Ну как я уже говорил выше, ИП не всегда есть гуд. Да и автор не совсем прав, обертка md5(md5()) вполне эффективна если проект закрыт, и никто кроме разрабов не знает о том как генерится хеш. Тоесть по сути хакер не знающий алгоритма, не сможет брутфорсить то что он не знает. А использование одного md5() это бонально для большинства.

И да, сессия тоже хранится не вечно, все от настроек сервера зависит. Тут речь скорее идет о том как организовать параметр remember me? тоесть запомнить человека, и без базы тут не обойдешься... а временную сессию. понятно дело что нет смысла хранить вообще даже в куки.

monolithed 29.01.2012 20:26

Цитата:

Сообщение от devote
а временную сессию. понятно дело что нет смысла хранить вообще даже в куки.

для статистики


Часовой пояс GMT +3, время: 16:03.