|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Stanislav Los 2:5020/400 01 Feb 2001 01:55:48 To : All Subject : Re: Как осуществить работу зарегистрированных пользователей на сайте? -------------------------------------------------------------------------------- Pavel V. Ammosov <Pavel.V.Ammosov@f52.n5020.z2.fidonet.org> пишет в сообщении:3804041925%slrn97aqrh.6tq.apavel@oops.intranet.hell... > On Mon, 29 Jan 2001 11:27:07 +0300, Ruslan Bondarev wrote: > > После авторизации пользователя я генерировал очень случайную строку > >букв и/или цифр. В некоем каталоге /sessions я создавал директорию > >с именем в виде этой строки (назовем ее session_id), в особый файл > >в этой директории (session.cfg) я писал всю нужную мне информацию. > > > Затем я линковал (ln -s) все нужные скрипты в > >эту директорию. Информация о пользователе теперь > >содержится в URI - тебе просто надо вырезать кусок урл'а. > > > Кроме того, специально обученый робот, висящий > >в кроне, раз в сутки проходил по каталогу /sessions > >и удалял директории с временем жизни более суток. > > При использовании такого метода (передача session id'ов в URL), есть пара > недостатков, о которых стоит помнить: > > * Если у тебя на сайте есть ссылки на внешние хосты, то браузер посетителя, > при переходе на них, может отдавать в referrer'е твой url вместе > с идентификатором сессии. Тогда, вредный админ, который смотрит > в лог, может придти на твой сайт, используя идентификатор сессии > легитимного пользователя, и сделать чего-нибудь не хорошее. > > Решением этой проблемы может быть, например, использование > дополнительного скрипта при переходе: > Hапример, была ссылка на <a href="http://yahoo.com">Yahoo</a>, > ты из нее делаешь <a href="/go.pl?url=http://yahoo.com">Yahoo</a>, > тогда все, что увидят сторонние люди в referrer'ах будет /go.pl?url=.. > > * Поисковые системы проиндексируют твой контент вместе с идентификаторами > сессий, например > http://www.example.com/08b3d620f567bf7d4fccd0aa144903ce/article.html. > Hо, когда пользователь захочет пойти по такому url запросто может оказаться что > > эта сессия уже проэкспайрилась и он получит 404. > > В равной степени это относится ко всем внешним ссылкам, в том числе к > пользовательским bookmark'ам. > > > -- > Pavel Ammosov O \ > apavel@aha.ru __ ) > http://isabase.philol.msu.ru/~apavel/ ) > wget -O - isabase.philol.msu.ru/~apavel/key.asc|pgp -fka O / Впринципе, никаких проблемм нет в этом плане, просто, если кто либо приходит по ссылке с мертвым индентефикатором, то ему без вопросов выдается страничка общая для всех незарегестрированных пользовователей. По сайту можно ходить как зарегестрированным, так и незарегистрированным пользователям, разница лишь в том что каждый из них может сделать на сайте. А то, что Руслан предложить использовать случайно сгенеренный идентификатор и гонять его вместо логина и пароля, то это есть рулез. Просто при первоначальном логинении пользователя буду заносить в mysql идентефикатор и время логинения этого юзера, ну и другую необходимую инфу. А потом, при хождении по сайту, буду этому пользователю обновлять время логинения. А кроном каждую минуту буду шерстить базу данных на предмет наличия записей с разницей между текущим временем и временем логинения более 15-ти минут и буду удалять такие записи. Вцелом такой вариант неплох, особенно, если использовать еще защиту данных при передаче. Вот, только я думал, что на Перле есть готовые решения, и стоит вначале спросить народ, прежде чем изобретать велосипед. -- Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/104172b70fe96.html, оценка из 5, голосов 10
|