Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Авторизация (Сесии и куки)

2.1K
23 октября 2004 года
Nicca
29 / / 27.03.2004
Подскажите как написать авторизацию с помощью сессий и кукисов?
Какой сдесь должен быть алгоритм работы такого скрипта? И как писать скрипт если у пользавтеля будут куки отключены?
Может кто даст пример такого скрипта с обьяснением - буду очень признателен.
287
26 октября 2004 года
Shiizoo
958 / / 14.03.2004
Бля, писал вчера микромануал для этого трэда, да спать захотелось.. терь в лом.. знаешь че сделай, если паришь в perl, ну хоть кое-как, или php, лезь на cpan.org, ищи там модуль CGI::Session, качай и смотри его исходник.. perl в принципе довольно похож на пхп (скорее наоборот правда), так вот там исходничок проще небывает, и наглядно объясняет что, где и как.. Думаю несложно его портировать на php, я сам просто с php знаком лишь краем..

sid - идентификатор сессии, я считаю, нужно передавать через http параметры (в брузле - адресная строка, пары ключ=значение после первого вопросительного знака).. ну, а кто из местных считает по-дргому, поищи, эта тема уже обсуждалась...

Организуешь к примеру доступ ко всем разделам сайта через один единственный скрипт, который сам разгребет, куда слать пользователя.. Организуешь в нем инициализацию сессий, проверку нужных параметров и т.п.. При авторизации получаешь пароль/логин, проверяешь их на соответствие с БД... Если все успешно, задаешь в объекте сессии логин/пасс, ну и ранг, если тебе это нужно.. Потом, в разделах, проверяешь "кто есть данный пользователь" путем обращения к этим ключам в объекте сессии.. если пароль/логин незаданы, знач юзер не проходил авторизацию.. если заданы - проходил.. если есть раздел чисто для админов (обычно выносят за пределы основного движка), при попытке доступа к нему заодно проверяешь значение переменной "ранг" в том же объекте сессии.. Ну и т.п. и т.д.. спть хочу, покуопайся, посмотри. че непоймешь - пиши.. тяжелая, нагруженная да и плюс ко всему депрессивная неделя.. немогу сам все размусоливать, а остальным как я понял твой вопрос неинтерсен..
2.1K
26 октября 2004 года
Nicca
29 / / 27.03.2004
Цитата:
Shiizoo


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

287
26 октября 2004 года
Shiizoo
958 / / 14.03.2004
Гы.. Ну это.. ТЫ вообще себе представляешь что такое куки и как они работают?:) А чем они отличаются от http параметров?:) Гм, непонимаю, ну какие могут быть различия в схемах работы скрипта, если кукисы всего-лишь храняца в браузере и автоматом посылаются серваку, в отличие от HTTP-парамов..)) ммм...

**Бля...

Опять, написал кучу драчи, изобрел велосипед без руля и сидушки, а птом вспомнил как надо=)))))

Знач смотри, система с кукисами такая же, просто при инициализации сессии пробуй скормить браузеру кукис "sid"=)

А в довесок, для автоматизации авторизации, при ручной регистрации, то бишь кторую пользователь сам, добровольно проходит используя свой браузер, выдаешь ему галку "запомнить меня".. Если он себя запомнил, пучком, знач парень или умник у себя дома, или дурак в гостях.. Если авторизация прошла успешно, то опять же пытаешься закинуть кукисы, теперь у нас их два, "login" и "pwd".. Логин - введенный пользователем логин, без изменений, pwd - хэш пароля, опять же говорю, MD5 - это удобно=)

Криптуй как угодно, лишь бы результат криптования всегда один был:))))

Терь думаем, зафиг мы кидаем юзеру куки "login" и "pwd"?? Система такая, при инициализации сессии, получаем эти долбаные кукисы, сверяем с БД`ой, если проверка прошла успешно - ставим в сессии флажок "logged_in".. И всё.. Никаких гемороев..

Пример такой..

У меня включены кукисы.. Я залез на твой сайт впервые.. Зарегистрировался.. Получил пароль, логин.. Мне предложили тут же залогиница (не логинь автоматом, хотчя, смотри сам).. Я ввожу пароль, логин на страничке авторизации, ставлю галочку "запомни меня", скрипт получает эту лабуду, сверяет с БД - все окей..
Далее скрипт делает хэш пароля, и отсылает мне две куки "login"/"pwd", параллельно влюкчая в сессии флажок "logged_in".. Все, я терь залогинен, все пучком.. Ушел я с сайта.. Вернулся на следующий день.. Залез.. При первом обращении к страничке, а оно у меня щас первое (потому что срок жизни вчерашней сессии уже давно прошел), скрипт инициализирует сессию.. Иициализировал.. Затем скрипт разгребает кукисы, если там есть "login"/"pwd", скрипт сверяет их с БД.. сверяет логин с логином, и pwd с хэшем пароля из БД.. Сверили, все пучком.. Скрипт переключает флажок "logged_in" в свежесозданной сессии и выводит мне страничку, которую я просил, сообщив мне "sid" (в кукисы, или же дописав ко всем 'локальным' относительно этого сайта ссылкам).. Всё, теперь я могу залезть и в личный кабинет, и отметица в гостевой книге, и участвовать в голосованиях нихрена не логинясь.. Все уже сделано..

Такой вот в общем пример.. Срок жизни сессий, я к примеру ставлю 60 мин.. Можь много, мне так удобней, смотри сам.. Если твой ресурс не предполагает длительного "зависания" на нем пользователей, ставь меньше, лишь бы больше не ставил:)) А-то придет какой-нить Вася Пупкин к своей подружке Фросе Бурлаковой домой, сядет за ее комп, пока та туалет будет драить, и залезет на твой сайт.. Казалось бы, Фрося не дура, никаких авторизаций "на лету" не задействовала.. Только хрена там было, у Фроси включены кукисы, "sid" храниться опять же в них, и зайдя на сайт Вася Пупкин получил доступ ко всему, до чего дозволено дотрагиваться Фросе.. как результат - текстовая порнография в ленте новостей, подмена её инфы, на 'крайне вызывающую' и т.п. и т.д.. Оно надо? Думаю нет.. Да, кстати, максимально ярко выдели кнопку "ВЫХОД" у себя на сайте.. Она спасает от такой драчи, только далеко не все понимают.. Даже нет.. Еще не видел человека, который жмет на такие выходы.. Оно и понятно, когда кнопка имеет размеры 5 на 5 пикселей, сливается с цветом фона и даже бывалый разведчик несразу поймет "на кой черт эту хрень сюда влепили?" - естессно.. Ну кто ее жать будет?:) Люди - клептоманы, кто-то в большей степени, кто-то в меньшей.. Пользуйся этим, дабы избежать неприятных ситуаций..

Ну, типа всё.. Как всегда размашисто, невнятно, но вроде по делу.. Или нет?=) Че непонятно - пиши, пиши, и еще раз пиши.. А как почуешь, что узнал все что хотел - отпиши сюда=) Нелюблю людей, кто получая ответ испаряются, хотя бы точку бы кинули в отдельном посте, типа "Все ребята, вопросов больше не имею".. Мы ж ждем=) Можь не все, ну вот я к примеру=) Ответчики тоже не от нехрен делать сюда пишут, разминаемся, тренируемся, рассуждаем.. Эт не бесплатные обеды, наоборот, ты мне - я тебе.. вопрос - ответ.. =) Тебе хорошо, и я мозги размял.. +))

Ну всё, часливо..
2.1K
26 октября 2004 года
Nicca
29 / / 27.03.2004
Спасибо Тебе Шизззо. Еще никто так не отвечал. Сразу видно - хороший человек.
У меня еще есть вопросик - что делать(алгоритм работы скрипта) если юзер куки отключил, тогда просто сессию создавать и все?
Слушай Шиззззо а дай мне свой icq (может это и нагло немного, но просто есть еще пару тем, думаю тебе будет интересно - нужно пару скриптов за $$$)
287
26 октября 2004 года
Shiizoo
958 / / 14.03.2004
Если нету куков, все делаешь также, просто дописываешь sid "ко всем локальным ссылкам" и забываешь про авторизация без участия польователя))

uin: 163992358
4.3K
28 октября 2004 года
Slastik
34 / / 03.04.2004
Цитата:
Originally posted by Shiizoo
Если нету куков, все делаешь также, просто дописываешь sid "ко всем локальным ссылкам" и забываешь про авторизация без участия польователя))



Дописывать к сылкам сид не надо, пхп его само дописывает, если конечно не отключен параметр
session.use_trans_sid, в пхп ини.
так же автоматически добавляет поле hidden
с сидом во все формы.

Дописывать надо только если юзаеш функцию
header()

287
28 октября 2004 года
Shiizoo
958 / / 14.03.2004
Эт пучком, если речь идет о php=)

Топик трэда "Авторизация (Сесии и куки)";)

Кидайте еще кто свои соображения, может кто как подругому действует, все варианты интересны..
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог