[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Стоит ли хранить в сессии пароль и логин?
program90
Здравствуйте,
стоит ли хранить в сессии, после того, как залогинились, логин и пароль? Или так не делают.
Вообще что дает сессия непонятно и что я должен сделать после того как пользователь вошел? Например, что делать если нужно закрыть доступ ко всем страницам пока он не залогинился? Нужно проверять на каждой странице совпадают ли его логин и пароль в сессии с логином и паролем в базе данных?
Или сессия создана для того, чтобы не авторизоваться при каждом доступе к странице, а один раз присвоить session_id и каждый раз сравнивать его тем которые восстанавливается функцией session_start(). А если пользователь не залогинен, то при доступе к какой-то странице session_start() даст ему session_id, а как тогда проверить впервые ли ему выдается этот id или он был выдан при логине(входе)?
Заранее спасибо,




Спустя 1 минута, 15 секунд (6.01.2011 - 21:55) Basili4 написал(а):
program90
храни в сессии только идентификатор пользователя все остальное вытягивай по необходимости из базы.

Спустя 2 минуты, 55 секунд (6.01.2011 - 21:58) twin написал(а):
Не обязательно... Не всегда оправдано дергать базу на каждой странице, хотя при определенных условиях это необходимо.

Одно точно - паролю нечего делать ни в сессии, ни в базе, ни еще где-либо.

Спустя 45 минут, 7 секунд (6.01.2011 - 22:43) Fredrich написал(а):
Спасибо и мне инфа помогла

Спустя 40 минут, 15 секунд (6.01.2011 - 23:24) program90 написал(а):
Т.е. сессия нужна для того чтобы создать в ней число 1 или ноль? И потом при каждом обращении к серверу проверять установлена ли для данной сессии переменная в единицу или не установлена? Если установлена то везде пускать, а если нет, то ни открывать ни одной страницы кроме авторизации?

Спустя 3 минуты, 30 секунд (6.01.2011 - 23:27) waldicom написал(а):
Цитата (twin @ 6.01.2011 - 19:58)
Одно точно - паролю нечего делать ни в сессии, ни в базе, ни еще где-либо.

Это как так?

Спустя 2 минуты, 50 секунд (6.01.2011 - 23:30) program90 написал(а):
waldicom
twin
Т.е. пароль нужно закодировать в md5 и хранить в базе хэш? я так и сделал. а вот с авторизацией к страницам непонятно.

Спустя 29 минут, 4 секунды (6.01.2011 - 23:59) waldicom написал(а):
Цитата (program90 @ 6.01.2011 - 21:30)
waldicom
twin
Т.е. пароль нужно закодировать в md5 и хранить в базе хэш? я так и сделал. а вот с авторизацией к страницам непонятно.

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

Спустя 1 час, 11 минут, 58 секунд (7.01.2011 - 01:11) twin написал(а):
waldicom
Цитата
Это как так?

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

Спустя 2 минуты, 1 секунда (7.01.2011 - 01:13) waldicom написал(а):
Цитата (twin @ 6.01.2011 - 23:11)
А по сему записывать, хранить, а тем более использовать пароль в меркантильных целях - грех. Только хэш, лучше всяко соленый.

Ага... Я уж подумал, что ты против паролей в базе. В смысле вообще против паролей, буде они в чистом виде, в виде хеша, и даже в виде хеша с солью.

Спустя 6 минут, 55 секунд (7.01.2011 - 01:20) Игорь_Vasinsky написал(а):
twin правильно говорит - пароль не хранить - пароль запоминать нуно )))))))))))))).
шучу.

Спустя 1 час, 57 минут, 43 секунды (7.01.2011 - 03:18) twin написал(а):
waldicom
Цитата
В смысле вообще против паролей, буде они в чистом виде, в виде хеша, и даже в виде хеша с солью.
Да ладно))
Но суть не меняется. Определение пароля:
Цитата
секретное слово или набор символов, предназначенный для подтверждения личности или полномочий.
wikipedia©
Вот ни этому слову, ни набору символов и
Цитата
нечего делать ни в сессии, ни в базе, ни еще где-либо.

Хэш или другая коллизия - другое дело. И уж не мне тебе объяснять, не юродствуй. smile.gif

Спустя 28 минут, 55 секунд (7.01.2011 - 03:47) program90 написал(а):
Подскажите, пожалуста, как сделать, чтобы нельзя было создать две сессии с одинаковым id одновременно? Чтобы предусмотреть покражу сессии.

Спустя 14 минут, 1 секунда (7.01.2011 - 04:01) twin написал(а):
То есть предлагается выдать гражданину два паспорта с одинаковыми номерами и другими реквизитами с целью обезопасить его от кражи документа????

id на то и id, что он идентификатор. Тобишь штука сугубо уникальная

Спустя 8 часов, 6 минут, 5 секунд (7.01.2011 - 12:07) program90 написал(а):
twin
просто я например у себя на компе зашел с mozilla в чат. В куки нашел содержимое id сессии и скопировал. Во втором браузере, Opera, в куки нашел старую сессию, и записал туда номер сессии из mozilla. И без логина и пароля сразу зашел в чат. Т.е. мне стали доступны все переменные сессии.
Просто непонятно как сделать, чтобы если кому то станет известен id, то он не смог на своем компе зайти под моей сессией?
В книге об этом не нашел толком. Может при авторизации записать remote_addr в базу данных, рядом с логином. А потом проверять каждый раз, вроде сошлось или нет.

Спустя 26 минут, 38 секунд (7.01.2011 - 12:33) Basili4 написал(а):
program90
Кража кук известная беда чтоб усложнить кражу в куки пишут инфу о юзер агенте то бишь бравзере но не в открытом виде а хеш какой нибудь соленый. при проверки проверяешь наличие такой куки сверяешь её содержимое с тем что получается у тебя если сходится то все окей если нет то на лицо воровство кук. Но это тоже не панацея куку можно поделать.

Спустя 3 часа, 24 минуты, 24 секунды (7.01.2011 - 15:58) DySprozin написал(а):
waldicom
;; А что с авторизацией? Один раз спрашиваем пароль и если успешно, то пишем в сессию.
;; А на нужных страницах проверяем в самом начале, есть ли в сессии специальное значение,
;; показывающее, что пользователь залогинился.
Проблема при таком подходе в том, что придется либо время жизни сессии зверски увеличивать (явная дыра в безопасности), либо заставлять юзверя каждый раз заново логиниться (;

Basili4
;;пишут инфу о юзер агенте то бишь бравзере
а что мешает злоумышленнику узнать браузер и поставить себе такой же? (; Если уж куки стырил, то инфу о браузере утащить сам кулхацкер велел (;

Спустя 5 минут, 10 секунд (7.01.2011 - 16:03) waldicom написал(а):
Цитата (twin @ 7.01.2011 - 01:18)
Хэш или другая коллизия - другое дело. И уж не мне тебе объяснять, не юродствуй. smile.gif

ладно ладно... уж и пошутатькать нельзя..
Цитата (DySprozin @ 7.01.2011 - 13:58)
Проблема при таком подходе в том, что придется либо время жизни сессии зверски увеличивать (явная дыра в безопасности), либо заставлять юзверя каждый раз заново логиниться (;

А для чего придумали куки?

Спустя 10 минут, 43 секунды (7.01.2011 - 16:14) DySprozin написал(а):
;;А для чего придумали куки?
а чего там хранить? id сессии? Бесполезно - она умрет. Хеш пароля? Возвращаемся к тому, что было (;

Спустя 9 минут, 13 секунд (7.01.2011 - 16:23) waldicom написал(а):
Цитата (DySprozin @ 7.01.2011 - 14:14)
а чего там хранить? id сессии? Бесполезно - она умрет. Хеш пароля? Возвращаемся к тому, что было (;

Как я вижу, опыта разработки у Вас не так много? Или я ошибаюсь?

Спустя 21 минута, 47 секунд (7.01.2011 - 16:45) Гость_KaFe написал(а):
Я примитивен и очень туп. Во-первых никогда ни доверяйте данным от пользователь, пользователя нужно рассматривать как злоумышленника, который хочет взломать вашу систему то бишь сайт, поэтому в куках должен лежать очень сильно закодированный логин и пароль. Во-вторых, многие заблуждаются что нужно хранить пароли в базе как md5. Если разрабатывать нормальный сайт и везде эскайпить данные, продумывать защиту, то все будет отлично, а главное люди смогут восстанавливать свой пароль и система будет работать с чистыми данными, что не потребует от нас наращивание дополнительных абстракций.
Также есть некая теория по Информационной безопасности о стоимости хака и стоимости данных.

Что про мой опыт скажу, что я храню в сессиях: логин, id и некоторые служебные данные которые нужны для пользователя на сайт.

P.S: Вам не надоело перемалывать одни и те же вопросы по сто раз?

Спустя 29 минут, 5 секунд (7.01.2011 - 17:14) twin написал(а):
Надоело. Но приходится.
Потому что время от времени появляются вот такие горе-советчики и пишут такое:
Цитата
поэтому в куках должен лежать очень сильно закодированный логин и пароль.
А люди верят и поподаются.

На кой хрен кодировать логин, да еще очень сильно? Его и так все знают.
А вот паролю, хоть тышу раз закодированному в куках делать вообще нечего.

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

Вот тут можно почитать чисто теоритические выкладки, сам скрипт можно и пропустить.

Спустя 59 минут, 14 секунд (7.01.2011 - 18:13) DySprozin написал(а):
waldicom
;;Как я вижу, опыта разработки у вас не так много?
Программистом не рождаются - им умирают (; Что именно предлагаешь загонять в куки?

twin
;;А вот паролю, хоть тышу раз закодированному в куках делать вообще нечего.
то ли ты хэширование не относишь к "закодированию" (что в принципе правильно, если под закодированным подразумевать то, что можно раскодировать), то ли ты сам себе противоречишь: на странице http://irbis-team.com/15/7/4 ты чпб пишешь:
<?php

/**
* Function of installation of an autologin
* Функция установки автологина
*
@param integr
* return void
*/

function setAutologin($id)
{
$hash = md5(randStr() . $id);

setcookie('hash', $hash, time() + 3600 * 24 * 30, '/');

$res = mysqlQuery("UPDATE `". IRB_DBPREFIX ."user`
SET `hash` = '"
. $hash ."'
WHERE `id` = "
. (int)$id
);

}

Спустя 5 минут, 2 секунды (7.01.2011 - 18:18) twin написал(а):
А где тут пароль в куках?

Спустя 9 минут, 11 секунд (7.01.2011 - 18:27) DySprozin написал(а):
twin
все, разобрался, пасиб wink.gif

waldicom
вопрос снят (;

Basili4
;;пишут инфу о юзер агенте то бишь бравзере
еще один минус: юзверь решил обновить браузер или плагин на него поставить - инфа о браузере изменилась и придется перелогиниваться (;

Спустя 45 минут, 3 секунды (7.01.2011 - 19:12) jetistyum написал(а):
Думаю не плохой подход - привязывать сессию к IP, да возможно с этого же IP в локальной сети зайдет злоумышленник, украдет хэш идентификации, и таки напишет на вашем аккаунте "вася дурак" но вероятность совпадения всех событий очень мала smile.gif можно и логин с паролем захэшированными хранить в куках, и пароль в базе в открытом виде, и всем будет абсолютно пофиг, пока Ваш сайт не будет представлять какой-то реальной ценности. А если он действительно будет представлять такую ценность - то терморектальный криптоанализ никто не отменял wink.gif

Спустя 17 часов, 33 минуты, 40 секунд (8.01.2011 - 12:46) program90 написал(а):
ясно. всем спасибо smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.