Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Аутентификация через GET-значение?..


Автор: Kurt 9.5.2005, 17:16
Вот сейчас существует два основных способа аутентификации - некое уникальное значение (например, идентификатор пользователя) хранится либо в сессионной переменной либо в Cookie и каждый скрипт проверяет наличие этого значения и соотв. пускает/не пускает.
Я столкнулся с хостингом, у к-го нет модуля для работы с сессиями, а с cookie вообще темная история - на локальном сервере все ОК, а на хостинге почему-то cookie не ставятся, ну т.е. не принимаются броузером. Но это отдельный разговор..
Я пытаюсь придумать, как еще можно производить аутентификацию. Например, что если при логине пользователя генерировать уникальный ID, записывать его в БД и добавлять в качестве параметра ко всем ссылкам?
Т.е. вместо
Цитата
http://somehost.ru/somefile.pl?val=5
будет
Цитата
http://somehost.ru/somefile.pl?val=5&sessionID=1234567

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

Автор: korob2001 9.5.2005, 20:19
Я сейчас пишу что-то подобное, www.mobile.de . Сессии организовал так же через БД. Честно говоря я реализую ссессии таким образом впервые. Готовыми модулями вообще никогда не пользовался, раньше отслеживал сессии с помощью DBM файла.

Автор: Kurt 9.5.2005, 20:44
Вот я тоже думаю через такую штуку писать. Как ты оцениваешь нагруженость БД при таком подходе?
Или сайт еще не начал полноценную работу?

З.Ы. www.mobile.de очень медленно открывается.

Автор: Domestic Cat 9.5.2005, 20:45
Цитата
Например, что если при логине пользователя генерировать уникальный ID, записывать его в БД и добавлять в качестве параметра ко всем ссылкам?


Это называется энкодинг УРЛ (url encoding), в jsp пишется просто encodeURL("your link") и все. Поищи, может что найдешь.

Автор: korob2001 9.5.2005, 21:42
Цитата

Вот я тоже думаю через такую штуку писать. Как ты оцениваешь нагруженость БД при таком подходе?
Или сайт еще не начал полноценную работу?

Пока ещё не запустил.
Цитата

Это называется энкодинг УРЛ (url encoding), в jsp пишется просто encodeURL("your link") и все. Поищи, может что найдешь.

В Perl это реализует CGI.pm, хотя можно и вручную.

Автор: Kurt 9.5.2005, 22:23
Цитата
Пока ещё не запустил.

Как запустишь, пожалуйста, поделись впечатлениями - для меня это важно.

Автор: korob2001 10.5.2005, 00:40
smile ОК.

Автор: Kurt 28.8.2005, 17:28
Так чем все кончилось? Ты обещался рассказать.
Насколько напрягается база, насколько загружен сервер при такой ауторизации ну и так далее. smile

Автор: korob2001 28.8.2005, 17:59
Kurt - пока ещё не запускал, проект довольно большой для одного человека, да и заказчик меня не торопит. Вот я и не тороплюсь. Предположительно запускать буду в сентябре, как только запущу, обязательно дам знать. Пока могу лишь сказать как эта вся бодяга работает на локальном серваке, но думаю это тебя не очень-то интересует. Честно говоря в данный момент сильно тормозит из за банерной системы. :§ Собственно пытаюсь сейчас как-то это дело оптимизировать.

Автор: Kurt 28.8.2005, 18:04
OK. Будем ждать. Тогда могу лишь пожелать удачи в работе. smile

Автор: korob2001 28.8.2005, 18:09
Спасибо, она мне действительно понадобится. Код уже по ночам снится, а помимо этого прихождится ещё не большие заказы писать на VB. Вобщем, голова кругом идёт. smile

Автор: r 30.8.2005, 13:18
Привет Kurt, тебе необходимо использовать модуль Session.pm. Где-то читал что если на хостинге нет какого-то модуля тебе необходимо самому его установить, затем надо указать в программе путь к нему. Далее на форуме недавно я написал авторизацию с использованием куки(тема называется Session.pm). Там просто надо переписать под свой проект и все. Надеюсь что тебе это поможет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)