Здравствуйте.
Собственно говоря проблема в следующем : нужно реализовать функцию(галочку) "запомнить меня"
У меня нет возможности создать базу типа MySql с логином и паролем и по идентификатору в куках высовывать из базы пароль.
(У меня связка JS-PHP-Web сервис(XML строка) )
Я пока додумался до двух вариатнов :
1) Записывать пароли с логинами в куки -> сильно шифруя (ну по алгоритму) пароли.
2)Использовать Flashcookie (как - то)
Как еще можно реализовать такое хранение и такую задачу???
Заранее спасибо.
[Ответ]
(записывать туда логин и пароль) по идентификатору куки?
[Ответ]
alemiks 12:05 08.12.2011
Сообщение от Сергей29:
сервис свой
(записывать туда логин и пароль) по идентификатору куки?
А логины/пароли на стороне сервиса где хранятся?
Логин/пароль однозначно нельзя хранить в куках. При авторизации сервис выдает токен, его и хранить. При повторном обращении передаём токен. Токен сделать живущим в течение сессии (до закрытия браузера).
[Ответ]
anadonam 16:44 08.12.2011
Сергей29, в куках храни идентификатор юзера (но не логин, самое простое это уник цифра, которую не знает даже сам юзер но по которой идентифицируется акканут юзера) а проверка идентификатора идет в сессии в ходе работы сайта по нему и ориентируется для кого что загружать на сайте.
логин и пароь - это для юзера, а ты оперируй этим идетификатором - сессия получает его раз когда юзер вошел на сайт (или через куки или через "кнопку вход") а потом с ним и работает пока стоит сессия. и всё нормально будет в плане защиты (но дальше уж можно и самому додумать если нужна сильная защита в этом плане)
w1ew232323- василий петрович - herugadaish
1sdfsdfsd 4 - геннадич петя - moipassal
[Ответ]
AlexanderSergeev 17:04 08.12.2011
Нуда...варианты есть..не один точно. а вот про то, что в куках незя хранить - эт верно..сам посуди, а мало ли что, и откуда взять эти логины пасы потом)
[Ответ]
a_drew 11:23 09.12.2011
Вопрос. А если у вас на сервере не хранится связка логин/пароль, то как вы ее вообще используете? В смысле как пользователь проходит аутентификация? С чем сравнивается его пароль?
Если у вас нет возможности использовать mysql посмотрите в сторону sql lite или чего-то типа такого. Но опять же будьте аккуратны с хранением паролей.
Как вариант на стороне клиента можно хранить не зашифрованный пароль, а хэш от объединенных вместе логин+пароль+соль (salt которая).
К сожалению вы слишком расплывчато описали, что конкретно вам нужно сделать (насколько длинная сессия, насколько критичны данные, для чего авторизация и т.д.) поэтому чего-то более конкретного посоветовать очень сложно.
как вариант еще можно попробовать поработать с http://samy.pl/evercookie/
Но лучше подробно опишите, что вам нужно сделать, тогда будет намного проще посоветовать вам что-то конкретное.
[Ответ]
DRON-ANARCHY 12:07 09.12.2011
a_drew, да там в куки можно чо угодно запихать, захешировав, как бог на душу положит. Хоть md5(md5($pass)). Уже хрен кто раскусит.
В общем, тоже не пойму проблему.
[Ответ]
Сергей29 23:15 09.01.2012
Сообщение от a_drew:
Вопрос. А если у вас на сервере не хранится связка логин/пароль, то как вы ее вообще используете? В смысле как пользователь проходит аутентификация? С чем сравнивается его пароль?
soapclient отправляет логин и пароль с "формы" web - сервису там они сравниваются и ответ от сервиса серверу уходит обратно.
[Ответ]
a_drew 00:49 10.01.2012
Вообще, если сервис поддерживает аутентификацию, то он должен возвращать токен для пользователя, который потом и надо передавать сервису. Ну собственно это и будет тот самый SESSION_ID.
Если сервис ничего не возвращает, то это какой-то весьма странный сервис. На мой взгляд, в этом случае хранение пароля на стороне клиента или сервера зависит от того, на кого вы хотите взвалить ответственность за кражу пароля.
Если этот сервис — доступ к данным банковской карты, то лучше написать им на саппорт. Если нет, то просто добавляете к логину и паролю какую-то достаточно длинную соль и шифруете, скажем, 1000 раз с каким-нибудь длинным паролем и сохраняете в куки. Про выбор алгоритма, соли и количества итераций в интернете куча статей. Взять тот же пароль от wifi для примера.
[Ответ]
Spectator 01:16 10.01.2012
Сообщение от Сергей29:
Как еще можно реализовать такое хранение и такую задачу???
Заранее спасибо.
Никак. Нужен мускул (MySQL), всё остальное - решения через жопу. Можно, конечно, на ПыХаПы организовать нечто вроде простенькой СУБД для хранения паролей, но без ума и знаний она навернется скорее раньше чем позже.
Кабы те знания у Вас были - не спрашивали бы. [Ответ]
a_drew 01:29 10.01.2012
тогда уж наверное SQLight, если нет технической возможности развернуть полноценный MySQL.
[Ответ]
Потом считываем из файла значения в массив, выбираем из массива нужного юзера с нужным хэшем, проверяем совпадение хэша и делаем сессию
[Ответ]
silly 18:09 14.01.2012
Ну, как бы, зачем делать все через жопу, если можно сделать нормально? Правда же? Вы, кстати, с файлами тоже работаете неоптимально, здесь подошли бы функции serialize/unserialize.
[Ответ]
Dark_Dante 18:12 14.01.2012
Да я не спорю. Я пхп знаю поверхностно, но просто если нет базы данных то как выход хранить в файлах. К тому же там выше была идея хранить в куках... а если у юзера отключены куки?
[Ответ]
silly 18:17 14.01.2012
Не стоит решать задачу, которую никто не ставил: про отсутствие бд никто на самом деле не заявлял, это все предположения.
Забыл написать изначально, кроме serialize/unserialize нужны еще блокировки.
Сообщение от Dark_Dante:
К тому же там выше была идея хранить в куках... а если у юзера отключены куки?
1. Глупая идея.
2. Без кук сессии не работают. Нет возможности отличать пользователей друг от друга. Раньше еще практиковалось указание идентификаторов сессий в ссылках, но это время прошло.
[Ответ]
a_drew 19:04 14.01.2012
Сообщение от :
Не стоит решать задачу, которую никто не ставил: про отсутствие бд никто на самом деле не заявлял, это все предположения.
Сообщение от :
У меня нет возможности создать базу типа MySql с логином и паролем и по идентификатору в куках высовывать из базы пароль.
и SQLight и так хранит все в файлах. Или вы хотите переписать SQLight?
[Ответ]
silly 19:16 14.01.2012
Если это мне вопрос, то я очень люблю sqlite на самом деле.
[Ответ]
silly 19:33 14.01.2012
Сообщение от Сергей29:
сервис свой
(записывать туда логин и пароль) по идентификатору куки?
И там тоже нет mysql? А?
А то тут некоторые считают, что я невнимательно тему прочитал…
[Ответ]
a_drew 19:54 14.01.2012
silly, прошу прощения, вопрос был к Dark_Dante, который хочет самостоятельно реализовать сохранение данных а файл.
И видимо тему невнимательно прочитал я. Не заметил про то, что сервис свой. Если он свой, то он работает неправильно, т.к. должен возвращать токен сессии, о котором я писал выше. И тогда автоматически отпадают все проблемы с хранением пароля.
[Ответ]