Старый 08.12.2011, 09:45   #1   
Форумец
 
Сообщений: 15
Регистрация: 06.12.2009
Возраст: 37

Сергей29 вне форума Не в сети
Запомнить меня

Здравствуйте.
Собственно говоря проблема в следующем : нужно реализовать функцию(галочку) "запомнить меня"
У меня нет возможности создать базу типа MySql с логином и паролем и по идентификатору в куках высовывать из базы пароль.
(У меня связка JS-PHP-Web сервис(XML строка) )

Я пока додумался до двух вариатнов :

1) Записывать пароли с логинами в куки -> сильно шифруя (ну по алгоритму) пароли.

2)Использовать Flashcookie (как - то)

Как еще можно реализовать такое хранение и такую задачу???
Заранее спасибо.
  Ответить с цитированием
Старый 08.12.2011, 10:16   #2   
xxCENSOREDxx
 
Сообщений: 983
Регистрация: 09.04.2006
Возраст: 44

alemiks вне форума Не в сети
web-сервис сторонний или самописный?
  Ответить с цитированием
Старый 08.12.2011, 10:19   #3   
Форумец
 
Сообщений: 15
Регистрация: 06.12.2009
Возраст: 37

Сергей29 вне форума Не в сети
сервис свой

(записывать туда логин и пароль) по идентификатору куки?
  Ответить с цитированием
Старый 08.12.2011, 12:05   #4   
xxCENSOREDxx
 
Сообщений: 983
Регистрация: 09.04.2006
Возраст: 44

alemiks вне форума Не в сети
Цитата:
Сообщение от Сергей29 Посмотреть сообщение
сервис свой

(записывать туда логин и пароль) по идентификатору куки?
А логины/пароли на стороне сервиса где хранятся?
Логин/пароль однозначно нельзя хранить в куках. При авторизации сервис выдает токен, его и хранить. При повторном обращении передаём токен. Токен сделать живущим в течение сессии (до закрытия браузера).
  Ответить с цитированием
Старый 08.12.2011, 16:44   #5   
blocked
 
Сообщений: 20,415
Регистрация: 21.03.2010
Записей в дневнике: 1

anadonam вне форума Не в сети
Сергей29, в куках храни идентификатор юзера (но не логин, самое простое это уник цифра, которую не знает даже сам юзер но по которой идентифицируется акканут юзера) а проверка идентификатора идет в сессии в ходе работы сайта по нему и ориентируется для кого что загружать на сайте.

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


id - log - pas

0 - admin - 123
1 - вася - 1234
2 - dimon - qwerty
------------------------

более сложный случай:

w1ew232323- василий петрович - herugadaish
1sdfsdfsd 4 - геннадич петя - moipassal

Последний раз редактировалось anadonam; 08.12.2011 в 17:06.
  Ответить с цитированием
Старый 08.12.2011, 17:04   #6   
Форумец
 
Аватар для AlexanderSergeev
 
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 30

AlexanderSergeev вне форума Не в сети
Нуда...варианты есть..не один точно. а вот про то, что в куках незя хранить - эт верно..сам посуди, а мало ли что, и откуда взять эти логины пасы потом)
  Ответить с цитированием
Старый 09.12.2011, 11:23   #7   
Форумец
 
Сообщений: 149
Регистрация: 18.02.2006
Возраст: 38

a_drew вне форума Не в сети
Вопрос. А если у вас на сервере не хранится связка логин/пароль, то как вы ее вообще используете? В смысле как пользователь проходит аутентификация? С чем сравнивается его пароль?
Если у вас нет возможности использовать mysql посмотрите в сторону sql lite или чего-то типа такого. Но опять же будьте аккуратны с хранением паролей.
Как вариант на стороне клиента можно хранить не зашифрованный пароль, а хэш от объединенных вместе логин+пароль+соль (salt которая).
К сожалению вы слишком расплывчато описали, что конкретно вам нужно сделать (насколько длинная сессия, насколько критичны данные, для чего авторизация и т.д.) поэтому чего-то более конкретного посоветовать очень сложно.

как вариант еще можно попробовать поработать с http://samy.pl/evercookie/
Но лучше подробно опишите, что вам нужно сделать, тогда будет намного проще посоветовать вам что-то конкретное.
  Ответить с цитированием
Старый 09.12.2011, 12:07   #8   
Наночлен
 
Аватар для DRON-ANARCHY
 
Сообщений: 30,595
Регистрация: 06.09.2006
Возраст: 36

DRON-ANARCHY вне форума Не в сети
a_drew, да там в куки можно чо угодно запихать, захешировав, как бог на душу положит. Хоть md5(md5($pass)). Уже хрен кто раскусит.
В общем, тоже не пойму проблему.
  Ответить с цитированием
Старый 09.01.2012, 23:15   #9   
Форумец
 
Сообщений: 15
Регистрация: 06.12.2009
Возраст: 37

Сергей29 вне форума Не в сети
Цитата:
Сообщение от a_drew Посмотреть сообщение
Вопрос. А если у вас на сервере не хранится связка логин/пароль, то как вы ее вообще используете? В смысле как пользователь проходит аутентификация? С чем сравнивается его пароль?
soapclient отправляет логин и пароль с "формы" web - сервису там они сравниваются и ответ от сервиса серверу уходит обратно.
  Ответить с цитированием
Старый 10.01.2012, 00:49   #10   
Форумец
 
Сообщений: 149
Регистрация: 18.02.2006
Возраст: 38

a_drew вне форума Не в сети
Вообще, если сервис поддерживает аутентификацию, то он должен возвращать токен для пользователя, который потом и надо передавать сервису. Ну собственно это и будет тот самый SESSION_ID.
Если сервис ничего не возвращает, то это какой-то весьма странный сервис. На мой взгляд, в этом случае хранение пароля на стороне клиента или сервера зависит от того, на кого вы хотите взвалить ответственность за кражу пароля.
Если этот сервис — доступ к данным банковской карты, то лучше написать им на саппорт. Если нет, то просто добавляете к логину и паролю какую-то достаточно длинную соль и шифруете, скажем, 1000 раз с каким-нибудь длинным паролем и сохраняете в куки. Про выбор алгоритма, соли и количества итераций в интернете куча статей. Взять тот же пароль от wifi для примера.
  Ответить с цитированием
Старый 10.01.2012, 01:16   #11   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,828
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Сергей29 Посмотреть сообщение
Как еще можно реализовать такое хранение и такую задачу???
Заранее спасибо.
Никак. Нужен мускул (MySQL), всё остальное - решения через жопу. Можно, конечно, на ПыХаПы организовать нечто вроде простенькой СУБД для хранения паролей, но без ума и знаний она навернется скорее раньше чем позже.
Кабы те знания у Вас были - не спрашивали бы.
  Ответить с цитированием
Старый 10.01.2012, 01:29   #12   
Форумец
 
Сообщений: 149
Регистрация: 18.02.2006
Возраст: 38

a_drew вне форума Не в сети
тогда уж наверное SQLight, если нет технической возможности развернуть полноценный MySQL.
  Ответить с цитированием
Старый 14.01.2012, 17:52   #13   
Форумец
 
Аватар для Dark_Dante
 
Сообщений: 779
Регистрация: 21.01.2009
Возраст: 37

Dark_Dante вне форума Не в сети
А файлом обойтись никак?

Я конечно не специалист... Но если сделать так

Код:
$login=$_POST['login'];
$pass=md5($_POST['pass']);
//собираем строку
$str=$login.'|'.$pass;
file_put_contents("file.txt", $str, FILE_APPEND);
Потом считываем из файла значения в массив, выбираем из массива нужного юзера с нужным хэшем, проверяем совпадение хэша и делаем сессию
  Ответить с цитированием
Старый 14.01.2012, 18:09   #14   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Ну, как бы, зачем делать все через жопу, если можно сделать нормально? Правда же? Вы, кстати, с файлами тоже работаете неоптимально, здесь подошли бы функции serialize/unserialize.
  Ответить с цитированием
Старый 14.01.2012, 18:12   #15   
Форумец
 
Аватар для Dark_Dante
 
Сообщений: 779
Регистрация: 21.01.2009
Возраст: 37

Dark_Dante вне форума Не в сети
Да я не спорю. Я пхп знаю поверхностно, но просто если нет базы данных то как выход хранить в файлах. К тому же там выше была идея хранить в куках... а если у юзера отключены куки?
  Ответить с цитированием
Старый 14.01.2012, 18:17   #16   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Не стоит решать задачу, которую никто не ставил: про отсутствие бд никто на самом деле не заявлял, это все предположения.

Код:
$login=$_POST['login'];
$pass=md5($_POST['pass']);
//собираем строку
$str=$login.'|'.$pass;
file_put_contents("file.txt", $str, FILE_APPEND);
Забыл написать изначально, кроме serialize/unserialize нужны еще блокировки.

Цитата:
Сообщение от Dark_Dante Посмотреть сообщение
К тому же там выше была идея хранить в куках... а если у юзера отключены куки?
1. Глупая идея.
2. Без кук сессии не работают. Нет возможности отличать пользователей друг от друга. Раньше еще практиковалось указание идентификаторов сессий в ссылках, но это время прошло.

Последний раз редактировалось silly; 14.01.2012 в 18:29. Причина: дописал
  Ответить с цитированием
Старый 14.01.2012, 19:04   #17   
Форумец
 
Сообщений: 149
Регистрация: 18.02.2006
Возраст: 38

a_drew вне форума Не в сети
Цитата:
Не стоит решать задачу, которую никто не ставил: про отсутствие бд никто на самом деле не заявлял, это все предположения.
Цитата:
У меня нет возможности создать базу типа MySql с логином и паролем и по идентификатору в куках высовывать из базы пароль.
и SQLight и так хранит все в файлах. Или вы хотите переписать SQLight?
  Ответить с цитированием
Старый 14.01.2012, 19:16   #18   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Если это мне вопрос, то я очень люблю sqlite на самом деле.
  Ответить с цитированием
Старый 14.01.2012, 19:33   #19   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Цитата:
Сообщение от Сергей29 Посмотреть сообщение
сервис свой

(записывать туда логин и пароль) по идентификатору куки?
И там тоже нет mysql? А?

А то тут некоторые считают, что я невнимательно тему прочитал…
  Ответить с цитированием
Старый 14.01.2012, 19:54   #20   
Форумец
 
Сообщений: 149
Регистрация: 18.02.2006
Возраст: 38

a_drew вне форума Не в сети
silly, прошу прощения, вопрос был к Dark_Dante, который хочет самостоятельно реализовать сохранение данных а файл.

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



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind