Думаю сделать так. Покритикуйте, плз...

Alkinoy

Guest
Думаю сделать так. Покритикуйте, плз...

Необходимо проводить аутентификацию пользователей для закрытой части сайта. Планирую создать форму (не стандартная аутентификация НТТР!), в которой пользователь вводит логин и пароль. Передается все это методом POST. После проверки наличия такого пользователя и его пароля по базе, этому пользователю генерируется случайный ID, который храниться в передаваемой пользователю форме в поле типа hidden. При этом ID генерится новый при каждом обращении пользователя к серверу. Кроме этого, проверяется время с момента последнего обращения. При превышении некоторого значения - иди на форму с паролем и логином.
Понимаю, самая слабая часть - скрытое поле, но пока другого мои знания не позволяют сделать. Посоветуйте, как можно сделать лучше и покритикуйте саму идею. Желательно с конкретными примерами. Я еще не волшебгик, я только учусь...
 

Query

Guest
А зачем это вообще? ID можно генерить через time() и его же сверять с другим time() - то, которое время ;)

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

Alkinoy

Guest
А если кто то подсмотрел ID, который я передавал ранее??? Вот для этого и генерятся новые. А по поводу 15 минут - да, если некоторое время нет обращения - считается что пользователь ушел. Просто на страничке стоит скрипт, который каждые 2 минуты обновляет страницу.
 

Frol

Новичок
Если юзер прошел проверку регистрируй переменную в сессии
PHP:
$ok="yes";
session_register("ok");
и проверяй
PHP:
if(isset($_SESSION['ok']) && $_SESSION['ok']=="yes")
{
     // к чему допущен
}
PS Сессию подделать практически не возможно :)
 

RomikChef

Guest
Alkinoy,а куда ты записываешь время последнего обращения?
 

Alkinoy

Guest
В БД у каждого пользователя планируется отдельное поле.
 

RomikChef

Guest
Ну, если вся навигация осуществляется исключительно постом, то способ работать будет, я думаю.

правда, я таких навигаций не видел, но дело хозяйское.
 

RomikChef

Guest
Если подумать, то замена ид при каждом обращении к странице не имеет смысла.
Тот, кто перехватит ид, все равно сможет вклитинться, пока честный юзер смотрит страницу. Тут только сужается интервал времени - не 15 минут, а 1-2 - столько, сколько юзер смотрит страницу. Все равно достаточно.

Если боитесь снифинга - используйте SSL.
 

Alkinoy

Guest
Возможно, я че то не понимаю, только задача вот какая. На страничку из внешнего источнико попадают данные с периодом обновления 1 -2 минуты. И видеть их должны только отдельные люди. При этом, каждая страничка имеет свой уровень доступа, а каждый пользователь - свой. В начале каждой странички стоит проверка - а кто это ее запрашивает и какой у него уровень доступа? Если все ОК - показываем.
Тут советуют использовать сессии. Может я че то не понимаю, но вроде принцип тот же самый - при отключенных куках сессия передается POST методом. А у пользователя сохраняется в виде скрытых полей ввода. Только не меняется, и подсмотрев ее можно с другого браузера открыть тоже самое (даже параллельно!).
И еще: чем плох способ с передачей каждый раз имени пользователя и идентификатора, назначаемого динамически при помощи POST? Объясните, плз, может я пропускаю какие то грабли??? И так лоб болит.
 

RomikChef

Guest
при отключенных куках сессия передается GET и POST методом.
Про остальное я написал выше.
Пост плох тем, что вообще-то обычно на сайтах чаще используется метод GET
 

woland

Guest
А какие есть методы перехвата id? Они, вообще, эффективны? И стоит ли от них защищаться?
 

RomikChef

Guest
Методы перехвата в этом форуме не обсуждаются.
Достаточно знать, что если информация важная, то защищаться обязательно.
 

woland

Guest
Для того, чтобы написать защиту - нужно знать методы нападения... И обсудить это вполне целесообразно.

Только вот ссылок на "ксакеп" давать не надо.
 
Сверху