Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.17;
Скачать: CL | DM;

Вниз

логин юзера на сайт (общий вопрос по безопасности)   Найти похожие ветки 

 
antonn ©   (2007-05-23 00:25) [0]

Сижу, значит, думаю. Как наиболее качественно и при наименьших ресурсах сервера делать вход юзера на сайт? До сих пор делал так - при входе в куки пишу логин и md5 пароля. При обновлении страницы из куков достаю логин и пароль, обрабатываю от всяких нехороших символов, в $GLOBALS[] пишу значение, которое значит, что страница как для пользователя (ну и ниже по коду ее проверяю). Чем плох такой подход и как можно сделать лучше?


 
G_M_S ©   (2007-05-23 09:58) [1]

Не понял, зачем логин с паролем писать в куки? Выводишь на странице логина форму, получаешь от юзера логин/пароль, проверяешь как там тебе удобно, и устанавливаешь некую переменную в сесии

$_SESSION["is_logged"] = 1

Когда юзер разлогинивается - делаешь unset($_SESSION["is_logged"])

На странице пишешь, где должны быть различия для авторизованных и неавторизованных юзеров такое:

<? if(isset($_SESSION["is_logged"])): ?>

//тут для залогиненных
//все, что угодно, включая PHP-скрипты

<? else: ?>

//Тут для прочих

Что касается хранения - можно сохранять переменные $_SESSION["login"] и пр., можно даже ID-сессии хранить на сервере, коли сильно надо
<? endif ?>


 
Pazitron_Brain ©   (2007-05-23 10:27) [2]

http авторизация :)


 
homm ©   (2007-05-23 10:37) [3]

> Не понял, зачем логин с паролем писать в куки? Выводишь
> на странице логина форму, получаешь от юзера логин/пароль,
> проверяешь как там тебе удобно, и устанавливаешь некую
> переменную в сесии
> $_SESSION["is_logged"] = 1
> Когда юзер разлогинивается - делаешь unset($_SESSION["is_logged"])

До чего люди наивные :) Идентификатор сессии то проще перехватить, чем хэш пароля.


 
antonn (work)   (2007-05-23 10:45) [4]

я ваще так понял, что сессия - это те же куки, только автоматизинованы при использовании (если только они через get не передаются).

попытался распотрошить пхпнюку - но, блин, там закопаться можно...


 
homm ©   (2007-05-23 11:06) [5]

> я ваще так понял, что сессия - это те же куки,

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


 
McSimm_ ©   (2007-05-23 12:52) [6]


> Идентификатор сессии то проще перехватить, чем хэш пароля.

Чем легче ?


 
homm ©   (2007-05-23 13:28) [7]

> > Идентификатор сессии то проще перехватить, чем хэш пароля.
> Чем легче ?

Так и знал что ктонить придереться, ок не легче. Не сложнее, как минимум. Хотя опять-же он может в каждой ссылке писаться, тогдк легче.


 
G_M_S ©   (2007-05-23 15:17) [8]


> До чего люди наивные :) Идентификатор сессии то проще перехватить,
>  чем хэш пароля.

Вперед - перехватывай идентификатор сессии... Посмотрим, кто круче: ты или разработчики РНР.


 
McSimm_ ©   (2007-05-23 15:19) [9]

Разработчики PHP тут совершенно не при чем.


 
homm ©   (2007-05-23 15:23) [10]

> Посмотрим, кто круче: ты или разработчики РНР.

Какая разница. Все равно Бэтмен круче :)))


 
Gero ©   (2007-05-23 16:48) [11]

> [10] homm ©   (23.05.07 15:23)

По сравнению со слоном бэтмен отдыхает )


 
Real ©   (2007-05-24 13:14) [12]

Я обычно делаю авторизацию немного по другому: в БД держу таблицу sessions в которую пишу md5-хэш (генерируемый на основе нескольких значений, например time+ip) после проверки авторизации (если логин и пароль имеется в бд). Копия хэша - засылается юзеру в куки. Заголовком каждого файла, является выражение типа require("auth.php"); в котором проверяется хэш из куки на совпадение с каким-либо куком из таблицы sessions. Если запрос вернул 0 записей - значит авторизация неверная. Если было совпадение, то из таблицы sessions - берутся поля идентифицирующие юзера (например его ID или личные настройки. Эти данные записываются при авторизации, то есть тогда же, когда генерится хэш и заводится запись в таблицу sessions). При необходимости можно проверять и дату создания записи, если требуется ограничить срок жизни авторизации.

Взято из какой-то статьи по пхп-авторизации, автор вроде как Д.Котеров, а ему можно доверять в таких вопросах (имхо :)

Думаю яндекс, наверняка ответит большим кол-вом алгоритмов, чем форумчане в прочем :)


 
homm ©   (2007-05-24 13:18) [13]

> Копия хэша - засылается юзеру в куки.

А если у езера куки отколючены, то он сосет.

Это вообще-то и есть механизм сессий, только более частный и ограниченный случай :) Лучше уж просто переписать функции для сессий, что-бы в базу переменные складывались, а не на диск.


 
Real ©   (2007-05-24 15:29) [14]


> А если у езера куки отколючены, то он сосет.

Можно не в куки писать, а в сессию. Куки использую потому, что многие юзера хотят функцию "запомнить меня", то бишь не авторизироваться постоянно.


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

А как переписать? Перекомпилять что ли php, а потом хостеру сказать "возьмите мою новую версию пхп" ? :))))


 
homm ©   (2007-05-24 15:38) [15]

> А как переписать? Перекомпилять что ли php, а потом хостеру
> сказать "возьмите мою новую версию пхп" ? :))))

http://www.yandex.ru/yandsearch?rpt=rad&text=session_set_save_handler


 
Real ©   (2007-05-24 15:40) [16]

угу, а чем лучше такой вариант? :)


 
homm ©   (2007-05-24 15:47) [17]

> угу, а чем лучше такой вариант? :)

Тем что тебе не нужно переустанавливать php у хостера, тем более самому что-то переписывать :-/


 
Real ©   (2007-05-24 18:33) [18]


> Тем что тебе не нужно переустанавливать php у хостера, тем
> более самому что-то переписывать :-/

Издеваемся? Чем это лучше - [12] ?


 
homm ©   (2007-05-24 18:53) [19]

> Издеваемся?

Ни чуть.


> Чем это лучше - [12] ?

аботает, даже если куки отключены.



Страницы: 1 вся ветка

Текущий архив: 2007.06.17;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.019 c
3-1174897322
DelphiLexx
2007-03-26 12:22
2007.06.17
Как заставить fibs понимать внутренние и внешние параметры Execut


15-1179475698
codecleaner
2007-05-18 12:08
2007.06.17
О пользе стандартов...


15-1179700796
programmist87
2007-05-21 02:39
2007.06.17
Пакеты времени исполнения


3-1174993863
elserpiente
2007-03-27 15:11
2007.06.17
прехвать post_event в ADO


15-1179726500
Cerber
2007-05-21 09:48
2007.06.17
Разработка програм под Симбиан