[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Авторизация
Страницы: 1, 2, 3, 4, 5
depp
если у вас нет ограничений на право просмотра опр. информации на вашем сайте для конкретных авторизованных пользователей - делайте так. если же есть ограничения на просмотр - по любому надо проверять поступившую от пользователя информацию.
RootPM
depp

Вот это дельный совет, уверен кто зайдёт через поиск подчерпнёт дельную для себя информацию.

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

Правильно?

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
depp
я бы сессии в том варианте php, который есть - вообще не использовал. слишком накладно. проще всего писать в куку id и хэш. а саму сессию хранить в базе. нет ничего накладного в том, чтобы дергать постоянно инфу о пользователе из базы.
RootPM
Если имеем слабенький сервер и большое количество пользователей, то сессии будут очень сильно тормозить сервер. Что имеешь ввиду хранить сессию в DB, т.е. сама пара значений id и хеш?

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
killer8080
Цитата (RootPM @ 2.11.2016 - 17:24)
Кроме того мне не придётся каждый раз без необходимости залезать в DB, если пользователь просто ходит по сайту и нужно показать только его логин в шапке.

акк уже месяц как грохнули, а юзер ходит по сайту и думает что он залогинен blink.gif
Цитата (RootPM @ 2.11.2016 - 17:24)
Самое главное при таком подходе не потерять бдительность и обеспечить возможную безопасность, предложил такой вариант хеша: сгенерированное число + user_agent + login.

а "сгенерированное число" где будет хранится? Откуда его брать чтоб сравнивать? Какова разрядность числа?

Цитата (depp @ 2.11.2016 - 18:01)
я бы сессии в том варианте php, который есть - вообще не использовал. слишком накладно. проще всего писать в куку id и хэш. а саму сессию хранить в базе. нет ничего накладного в том, чтобы дергать постоянно инфу о пользователе из базы.

то есть схема:
php->файл_сессии
очень затратна по ресурсам, по сравнению с:
php->БД->файл_бд
?
В базу нужно лезть в любом случае за актуальными данными, в сессии хранится только user_id. Если так напрягает лишнее обращение к hdd, можно перенести хранилище на tmpfs.
walerus
- "Если имеем слабенький сервер и большое количество пользователей"

У меня пара вопросов:
1) Какой сервер? конфигурация его.
2) сколько человек в сутки, подразумевается под словами "большое количество пользователей" ?

По теме:
Игорь_Vasinsky дал ответ еще на первой странице

зы: 1500 человек круглосуточно проверяются(онлайн) таким образом и никаких тормозов, нагрузки, etc...
RootPM
Цитата (killer8080 @ 2.11.2016 - 21:58)
акк уже месяц как грохнули, а юзер ходит по сайту и думает что он залогинен blink.gif

а "сгенерированное число" где будет хранится? Откуда его брать чтоб сравнивать? Какова разрядность числа?

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

В DB, можно ещё привязать IP, но у меня больше 85% трафика с мобилок, у них он динамический.


walerus

8*2, 8

online - больше 40.000

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
Guest
Слушать стоит только свою интуицию. Всякий раз, когда прислушиваешься к мнению «старших и разумных», теряешь время. Если вы чувствуете, что надо делать – игнорируйте мнение авторитетов.
killer8080
Цитата (RootPM @ 3.11.2016 - 06:14)
Данные авторизации проверяются только при редактировании контента (сохранить, удалить, изменить), поэтому если его заблокировали и он ничего не делает, только просматривает страницы - флаг ему в руки.

Если юзер видит свой логин на странице, он считает что авторизован. Ты же хочешь обмануть юзера. Не самое лучшее решение с позиции юзабилити, стоит ли мнимая оптимизация этого?
К тому же если ты решил обманывать пользователя, зачем тогда вообще куки? Смысл в каждом запросе слать ненужную серверу информацию? Если уж так рьяно взялся за оптимизацию, то наверно в курсе что для рендеринга страницы браузер шлёт множество http запросов, в каждом из них будут эти куки с логином. Это же лишний трафик biggrin.gif
Пиши тогда логин в local storage и выводи через JS на клиенте, тогда логин можно будет отображать даже на статичном html biggrin.gif Ну а что? Какая разница? Всё равно же эта информация не актуальная. rolleyes.gif
Цитата (killer8080 @ 2.11.2016 - 21:58)
а "сгенерированное число" где будет хранится? Откуда его брать чтоб сравнивать? Какова разрядность числа?

ну я же не просто так спросил, это имеет прямое отношение к безопасности smile.gif

Цитата (RootPM @ 2.11.2016 - 17:24)
сгенерированное число + user_agent + login

кстати, привязка к юзерагенту означает разрыв сессии после обновления версии браузера, при автологине такое поведение не желательно.
RootPM
Цитата (killer8080 @ 3.11.2016 - 23:04)
кстати, привязка к юзерагенту означает разрыв сессии после обновления версии браузера, при автологине такое поведение не желательно.

Про этот момент даже не подумал. Что касается user_agent, хотел сделать небольшую защиту от перехвата или подбора идентификатора сессии, маловероятно подобрать значение из 32 байт, но всё же. Согласен что при моей нагрузке ещё можно использовать сессии (только хранить в памяти), но есть же какой то весомый повод использовать куки, как это делают в крупных проектах?

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
killer8080
Цитата (RootPM @ 4.11.2016 - 06:44)
хотел сделать небольшую защиту от перехвата или подбора идентификатора сессии, маловероятно подобрать значение из 32 байт, но всё же.

зная твой алгоритм хеширования, достаточно подобрать
Цитата (RootPM @ 2.11.2016 - 17:24)
сгенерированное число

что намного проще, чем брутить пароль. Н а"безопасность через неизвестность" в этом деле особо полагаться нельзя. Но мой вопрос о разрядности числа так и остался без ответа.
Цитата (RootPM @ 4.11.2016 - 06:44)
Согласен что при моей нагрузке ещё можно использовать сессии (только хранить в памяти), но есть же какой то весомый повод использовать куки, как это делают в крупных проектах?

Сравнение "куки vs сессии", это как "колёса vs автомобиль" wink.gif
Куки - это всего лишь заголовки, с их помощью обходиться stateless ограничение http протокола, т.е. можно помечать клиента, и отличать его запросы от других. Сессии же - это механизм уровнем выше. Вопрос не в том использовать сессии или нет, вопрос в том, использовать нативную реализацию этого механизма в PHP, или изобретать свою. По каким причинам не устраивает нативная? Не нравится обращение к ФС? Так я уже выше упоминал, что файлы совсем не обязательно хранить на диске. Нужно использовать другое хранилище? Можно назначить свой обработчик через session_set_save_handler.
У файлового хранилища проблема не в быстродействии, а в блокировках из-за чего будут тормоза при неправильном использовании с множественными ajax запросами, но ты об этом почему то не упоминул, зато борешься с лишним обращением к ФС. На фоне всего остального, что делает твой скрипт, это пшик.
RootPM
Цитата (killer8080 @ 4.11.2016 - 17:04)
будут тормоза при неправильном использовании с множественными ajax запросами

Можно подробнее

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
RootPM
Синхронно делать, при использовании сессий? _ ))

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
bestxp
Цитата (RootPM @ 7.11.2016 - 07:32)
Синхронно делать, при использовании сессий? _ ))

сделай 2 скрипта


в одном сделай

session_start();
sleep(100);
echo 'hello i\'m very long operation'


во втором

session_start();
echo ' hello world'


потом в браузере открой в одной вкладке первый файлик, потом второй =) и смотри сколько времени потребуеться что бы отобразить второй ;)
RootPM
bestxp

Цитата (killer8080 @ 4.11.2016 - 17:04)
У файлового хранилища проблема не в быстродействии, а в блокировках


На форуме обсуждался этот вопрос - жесткая блокировка, а точнее получение в сессии эксклюзивной блокировки (запись).

Кто не понял, второй файл встаёт в очередь (пока первая сессия не отработает) и занимает свободные воркеры.

Я же не зря попросил подробнее описать, как пользоваться сессиями при использовании аякса.

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.