Логин пароль cookie шифрование
Подскажите пожалуйста, в какой форме должны хранится логин и пароль пользователя в cookie. Их же надо шифровать?
|
они не должны хранится в кукисах ни при каких условиях
но, к примеру вконтакт ранее хранил мыло в открытом виде, и пароль в md5 в кукисах. сейчас так не делают уже в кукисах следует хранить SESSID как средство сохранения сессии |
Ясно, спасибо Gvozd.
Просто сессиями никогда не пользовался. А вот когда логинятся надо данные как-нибудь шифровать для отправки на сервер? |
Цитата:
для частных случаев есть HTTPS |
Цитата:
upd: SESSID вроде сама кладется в куки? |
Цитата:
как случайное число связанное с сессией поможет препятсвовать краже сессии? собственно говоря не вижу различия между SESSID и случайным числом. оба суть случайные величины, вообще-то |
Цитата:
|
хм
теперь понятнее. но при этом есть проблема при посылке двух одновременных запросов с одинаковым случайным числом, первый из них, изменивший его, заблокирует дальнейшую работу второго запроса. блиц-попытка решить эту проблему у меня вызвала возвращение к небезопасности при перехвате одного запроса то есть если разрешить посылать одновременно два запроса с одним случайным числом, то послав такой же запрос сразу после перехвата, злоумышленник получит случайное число для продолжение сессии, и сможет пользоватся ею до тех пор пока поддерживает у вас есть решение обхода проблемы одновременных запросов, и чтобы было безопасно PS у меня устойчивое чувство, что мы тут занимаемся изобретательством велосипеда, и что уже есть достаточно безопасные схемы поддержания сессии. |
Цитата:
Цитата:
1. При смене рандомного числа, запоминаем прошлое, а так же время запроса. 2. Если приходит запрос с прошлым числом и время больше, например, минуты, прошедшее со времени последнего обновления - сбрасывать доступ. Если меньше минуты - разрешать доступ и так же обновлять число, но не переписывать старое. Т.е. у нас остальные вызовы будут обработаны. 3. Если пришло новое число - пункт 1. Думаю, что минуты вполне достаточно для попытки достучаться до сервера. Если же пользователь больше минуты не обновлял страницу и сессия жива - будет использоваться последнее число, полученное при прошлом обращении. Хочу подчеркнуть, что это очень редкий случай. Думается мне, что безопасность тут не пострадает. Цитата:
|
Цитата:
|
B~Vladi,
ну, я также думал разрулить теперь злоумышленнику достаточно перехватить в любой момент сессию с случайным числом, и обновляя страницу раз в минуту, он будет поддерживать соединение |
А если хранить логин и пароль в двух глобальных переменных?
window.login и window.parol ? |
mycoding,
ты что шутишь? конечно же это будет более чем небезопасно |
А почему? Все злоумышлиники рассчитывают, что данные в cookie.
Т.е. от случайных скриптов по угону паролей уже затились. Страница закрыта данных нет. Можно конечно просто idssesion держать в переменной. Как можно данные угнать в этом случае. |
Цитата:
|
mycoding, тогда уж не локально, а где нить внутри функции, чтобы хакер не сразу их нашел:D
|
На самом деле кроме сессий похоже ничего нет.
А моя идея с глобальными переменными плохая уже понял. |
Как сделать автоматическую авторизацию (галочка "запомнить меня") не сохраняя логин/пароль в куках? Я не вижу способа.
Цитата:
|
При входе генерировать случайный ключ, записывать в БД и куки. При следующем входе ищем этот ключ и если находим, восстанавливаем сессию.
|
Цитата:
|
Вопрос о том, как не пустить перехватчика куков, не стоял.
Другое дело, что если хранить пароль в простом md5 (или, о ужас, не хэшируя), его можно подобрать, используя радужные таблицы, что представляет большую опасность, чем взлом аккаунта. Не дать перехватчику куков авторизовать можно только привязав аккаунт к IP. |
Цитата:
Цитата:
Цитата:
|
Повторяю: если в куках будет хэш пароля, этот пароль можно будет восстановить (брут, радужные таблицы). Потеря пароля страшнее потери аккаунта.
Цитата:
|
Цитата:
|
Цитата:
Цитата:
.... вообще то .... .... короче я понял, в чем фишка айдишника предложенного B@rmaley-ем: злодей по нему так же может авторизоваться, на этом этапе разницы никакой, но вот дальше-то я ничего не продумывал, а дальше так: злодей авторизуется, id меняется и записывается ему в куки, теперь злодей может спокойно заходить на чужой аккаунт, id при этом каждый раз в куках и в базе меняется, дальше приходит настоящий владелец, зайти по id не может, т. к. у него остался старый id, вводит пароль, id опять новый и у злодея он уже устарел, если он не имеет возможности второй раз добыть новый id, то он отдыхает. Нужно только id делать не совсем случайный, а случайный из незанятых. .... появляется вероятность следующего: у пользователя в базе занят id, он высвобождается при авторизации злодея, но в куках у настоящего пользователя он остался, другой пользователь случайно занимает высвободившийся в базе id, заходит первый пользователь и попадает на аккаунт второго. Результат: злодей сидит на аккаунте первого пользователя, первый пользователь на акккаунте второго .... . Вероятность ничтожная, но она есть. Решение: логин в куках тоже запоминать, он же даст элемент уникальности и не нужно следить, занят ли id. Теперь можно в базе хранить не чистый id, а хеш от него, теперь если злодей как-то сможет считывать с базы эти хеши, то они ему ничего не дадут, тогда как в варианте без логина в куках, злодей получает из базы чистые айдишники и значит доступ вообще ко всем аккаунтам. Но это совсем не серьезный плюс, т. к. если злодей может считывать хеши, то он уже и так, наверняка, имеет полный доступ к базе, а это в любом случае полный п....ц, хоть хеши там, хоть нет. Плюсы варианта с логином в куках: 1. нет мизерной вероятности попадания взломанного пользователя на случайный аккаунт. (Вероятность настолько ничтожна, что можно не считать.) 2. хеши вместо чистых id в базе. (Тоже можно не считать, почему объяснил выше.) 3. если id не подошел, то можно поле "логин" из куков заполнить. (Хоть что-то значимое.) 4. раз сервер знает логин из куков, он может предупредить пользователя id которого не подошел, что на его аккаунт заходили с другого компа. (Вот это действительно значимый плюс.) Минусы варианта с логином в куках: 1. логин в куках в чистом виде. (Можно не считать, т. к. в варианте без логина в куках увидеть этот логин тоже не проблема.) Чуваки, я был неправ, каюсь, спасибо, что заставили думать дальше авторизации. UPD: афигеть, понаписал. UPD2: сорри, плюсы не ставятся, для Kolyaj понятно почему, недавно добавлял, а вот почему B@rmaley-ю не хочет ставить, загадка. |
Цитата:
md5($login . $ip. microtime() . mt_rand() /* добавить еще переменных по вкусу */) Если только защищаться от коллизий md5... |
Цитата:
|
Цитата:
|
Цитата:
|
Riim,
преждевременная оптимизация это называется. |
Часовой пояс GMT +3, время: 12:27. |