Автор Тема: Проблема авторизации с использованием сессий.  (Прочитано 3680 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн anlgizer

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://israeli.steetlife.ru
Привет!
Итак, идентификация происходит следующим образом:
пользователь вводит логин/пароль, который сверяется с БД. Авторизированному пользователю открывается сессия, в которой хранится id, который используется для последующей работы скрипта.
для зашиты от взлома имеется следующий алгоритм.


unset($user_id);
session_start();
if(!
session_is_registered(\'user_id\'))
{
        header(\'location: check.php\');
}
....вывод данных...


Уничтожать сессию или переменную сессии нельзя - придется опять вводить пароли.

Если другой пользователь, работаеющий с того же компа не закрыв браузера (Куки работают, насколько мне известно до закрытия окна (по дефалту ) ) просто введет Url документа, то она выводит данные предыдущего вошедшего юзера.
То же самое, если воспользоваться конпкой back браузера и заново авторизироватся - выводятся данные предыдущего.

как же быть?
:insane:
php i php

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема авторизации с использованием сессий.
« Ответ #1 : 26 Августа 2002, 23:38:40 »
Казнить нельзя помиловать.
Сессию убивать нельзя, потому, что придется вводить пароли.
Но при этом может придти друго юзер и без пароля войти.

Ты уж сам определись, как-нибудь, чего ты хочешь.

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

БОЛЬШЕ от тебя ничего не зависит.
Странно вообще, что ты озаботился, кто там сидит за компом.

Оффлайн anlgizer

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://israeli.steetlife.ru
Проблема авторизации с использованием сессий.
« Ответ #2 : 26 Августа 2002, 23:55:24 »
да, кстати, puple это щенок...

я хочу чтобы при входе на ЛЮБУЮ страницу, с того же компа, без закрытия браузера, если юзер не прошел авторизации (не знаю как, может флаг поставить... а где его хранить?) то его ворочало в начало.

блин... хреново....
получается никак!!! не может быть такого....
php i php

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема авторизации с использованием сессий.
« Ответ #3 : 27 Августа 2002, 00:08:53 »
Тебе наддо быть корректнее в формулировках.
пока это напоминает причитания тещи, у которой опрокинули таз а борщом.
Я, как бы ответил, тебе, основываясь на своем недюжинном телепитическом аппарате, но вообще я сомневаюсь, что правильно понял твои проблемы.

Оффлайн anlgizer

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://israeli.steetlife.ru
Проблема авторизации с использованием сессий.
« Ответ #4 : 27 Августа 2002, 00:30:30 »
мисандерстуд.
щас еще раз попробую.

юзер вводит логин/парольt, открывается сессия, туда записывается user_id из БД, ссответствующий логи/пароль.
перенаправляется а другую страничку, скажем erminal.php

для защиты от url типа terminal.php?user_id=1
очищается $user_id
открывается сессия.
Преверяется, есть в области хранения данных сессии переменная user_id, которая должна была быть установлена при авторизации.

Есть - работаем дальше, нет - редирект на страничу авторизации.

юзер ушел, не закрыв окно браузера, скажем, ввел ntv.ru посмотрел новости и ушел.

пришел злодей, ввел адрес странички авторизации. Т.к. брауер не закрылся, то кука пред. пользователя осталась.
Злодей вводит свой логин/пароль но сессия считается незаконченной, кука не перезаписывается, остается переменная с user_id другого пользователя.

другой вариант, злодей вводит сразу terminal.php и, опять же, считается "своим", получает информацию предыдущего юзера.

как сделать чтобы так не было?
php i php

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема авторизации с использованием сессий.
« Ответ #5 : 27 Августа 2002, 10:11:40 »
Ну, ты как - проснулся уже? :-)
Отслеживать с сервера, кто сидит за компом больше не хочешь?
Я на это надеюсь очень, во всяком случаее.
А то после твоих слов о
Цитировать
блин... хреново....
получается никак!!! не может быть такого....

Я уж беспокоиться начал.

В общем.
при попадании на страницу авторизации надо, естественно, на ней запрашивать пароль, а не писать "Здравствуйте, дорогой юзернейм!".

От того, что один юзер окно не закрыл, а другой пришел - ты НЕ ЗАЩИТИШЬСЯ НИКАК. Это следует из здравого смысла. Есть такая штука в жизни, кроме мануала по РНР. Так что relax & enjoy. что по-русски звучит "выпей и забей".

Ну, в общем, ты можешь уменьшить время жизни сессии. Но этим ты можешь подгадить ннормальным юзерам, а злодей все равно придет в этот промежуток.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема авторизации с использованием сессий.
« Ответ #6 : 27 Августа 2002, 10:14:14 »
да, а щенок - это pup. Просто pup. А слова puple ни в одном из известных мне языков нет.

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема авторизации с использованием сессий.
« Ответ #7 : 27 Августа 2002, 14:49:22 »
Кстати, про
Цитировать
relax & enjoy
...
А на фиг тебе такой уровень защищенности нужен? Вообще говоря, даже в ФБР компы не выключаются, если юзер отошел покурить. Или ты пишешь внутренний сайт для напропалую интригующих сотрудников корпорации? ИМХО, большинство посетителей среднестатистического сайта находятся на достаточной дистанции друг от друга
TANSTAAFL

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28