|
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
|
|
Зачем используют сессии?09.10.2020, 20:20. Показов 4609. Ответов 85
Метки нет (Все метки)
Достаточно долгое время занимаюсь веб технологиями и PHP и до сих пор не могу понять зачем (не как, а зачем) используют сессии.
Опишу механизм сессии упрощенно При сессии пользователю ставится cookie с идентификатором сессии (для PHP - PHPSESSID). Вся информация пользователя, которую надо сохранить, сохраняется в файлах на сервере. И при обращении пользователя, сервер читает идентификатор (PHPSESSID) и ищет файлы ассоциированные с этим идентификатором. Фактически сессия - это куки на сервере. Механизм кук более простой. Вся информация пользователя, которую надо сохранить, сохраняется в файлах на компьютере пользователя (в файлах, называемых cookie). И оттуда же читается. В чем проблема Проблема в том, что срок жизни сессии устанавливается на сервере. В связи с этим возникает множество неудобств 1) По умолчанию он 24 минуты. 2) Не всегда есть доступ к php.ini. (Обычный хостинг) 3) Максимальный срок жизни сессии 24 часа. Моя задача, как программиста сделать использование сайта максимально удобным. Да и как пользователь я хочу чтобы мне было комфортно работать в интернете. Часто возникает ситуация, что я авторизовавшись работаю с сайтом. И после закрытия браузера (или через определенное время) моя авторизация пропадает. Нужно вводить данные снова. Это не удобно. С куками, таких проблем, разумеется нет. Зачем используют сессии, когда есть куки? Куки удобнее, проще, универсальнее. Не будет "автовыхода" с сайта. Человек сам решит когда ему выйти. Не нужно настраивать сервер. Данные каждого человека хранятся на его компьютере (в его куках). Сплошные преимущества.
0
|
|
| 09.10.2020, 20:20 | |
|
Ответы с готовыми решениями:
85
Зачем нужны сессии? Зачем используют Eclipse? |
|
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,823
|
|
| 09.10.2020, 20:59 | |
|
useruser, Основное и принципиальное отличие в том, что куки хранятся в браузере, что не очень безопасно, а сессия на сервере.
Токен авторизации можно хранить как в сессии, так и в куках. Определяется галочкой "запомнить меня" при входе.
0
|
|
|
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
|
|||||||
| 09.10.2020, 21:37 | |||||||
|
useruser,
0
|
|||||||
|
563 / 410 / 259
Регистрация: 31.05.2016
Сообщений: 1,105
|
|
| 09.10.2020, 21:58 | |
|
Большой массив данных в куку вы не сможете сохранить.
0
|
|
|
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
|
|||||
| 09.10.2020, 22:12 [ТС] | |||||
|
Что взять куки с компьютера, что взять куку PHPSESSID и получить все данные с сервера. Не принципиально, особенно с учетом того что в куках обычно нет ничего интересного. Они "ключ" к данным. И этот ключ всегда на компьютере пользователя. А иначе он бы просто не получил доступ к своим данным на сервере. В куке PHPSESSID (или другое название при правке php.ini)- если реализуется механизм сессий. В адресной строке (GET запрос www.somesite.ru&PHPSESSID=SecretPass). Такое уже редко встретишь В любой сторонней куке, при реализации своего механизма авторизации (отказ от сессий, делаем на куке). Преимуществ сессий пока не вижу. Например, вы можете попробовать ini_set max_execution_time=0, но через 2 минуты ваш скрипт остановится. (На стаке есть тема.) Хостеры ограничивают некоторые параметры. Можно и через .htaccess - но если веб сервер будет Nginx, то разумеется это не сработает и наверно надо будет искать ещё решения. Так зачем всё это, когда есть куки? Куки - и вы не зависите от параметров сервера.
0
|
|||||
|
321 / 189 / 78
Регистрация: 04.10.2016
Сообщений: 809
|
|
| 09.10.2020, 22:22 | |
|
В 2к20 году юзать что то одно - это от лукавого. Сессия для сервера, куки для клиента. Тут нечего пояснять больше - основа веба.
Добавлено через 2 минуты Учите матчасть Добавлено через 4 минуты Веб-хостинг это прошлый век. Сейчас вдс/впс сервер недорого стоит и доступны. На счёт хостеров - демагогия бессмысленная и ненужная
0
|
|
|
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
|
|||||||
| 09.10.2020, 22:37 | |||||||
|
useruser,
0
|
|||||||
|
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
|
|||||
| 09.10.2020, 22:53 [ТС] | |||||
|
Поэтому я и не спрашиваю как, а спрашиваю - зачем? Да, такое редко - но зачем об этом думать? Какие преимущества у сессий?
0
|
|||||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
||
| 09.10.2020, 22:55 | ||
|
Нужно только понимать, что куки приходят от клиента, и доверять им нельзя, и например в них нельзя хранить такие данные как id пользователя и т.д, а какой-ниюудь трудноподбираемый токен - нормально
0
|
||
|
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
|
||
| 09.10.2020, 23:03 | ||
|
useruser,
P.S. И да - у себя в профиле уберите "безопасность". Хранить данные пользователя в куках есть абсолютное ламерство.
0
|
||
|
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
|
||
| 09.10.2020, 23:08 | ||
), которые можно использовать через тот же механизм сессий или минуя его.
0
|
||
|
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
|
|||
| 09.10.2020, 23:12 [ТС] | |||
|
Я показал 2 механизма и говорю - смотрите с сессиями могут быть проблемы. Основная причина - срок жизни сессии. Привел аргументы. И на практике эта проблема есть. Вот прямо сейчас на сайте крупного магазина, где я залогинен, истекла сессия. И мне снова пришлось авторизироваться. Вы можете сказать - надо выполнить настройку сервера. Возможно. Но такое встречается довольно часто. Сессия истекает, вас разлогинивает. Так уж сложилось. На практике я не вижу преимущества сессии, только недостатки.
0
|
|||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|||
| 09.10.2020, 23:22 | |||
user_id=10. Такую куку подобрать не составит большого труда, и никакой фильтр не поможет. А если будет что-то такое token=BzKPzTl+R1dFwWjDzGtsX4DX1P/bXkhKHnVaHinl2CBzZkskclv0ErXofF+WAdAQcW7SorjPZIELsJf2lwMbtVK2rP0Wn/jSMkxUjZtrj4qndsWyog88TmrxKrZSiyVi/kNRAF0JqYXcL и так просто уже не подобрать
0
|
|||
|
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,823
|
||
| 09.10.2020, 23:30 | ||
|
Но учтите тот момент, что если пользователь заходит на сайт с чужого компьютера, то он захочет повысить свою безопасность, и чтоб токен хранился на сервере, а не на клиенте.
0
|
||
|
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
|
||
| 09.10.2020, 23:34 | ||
|
0
|
||
|
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,823
|
|
| 09.10.2020, 23:39 | |
|
В дополнение к моему посту выше. Можно еще добавить такой функционал, как "выйти из под всех устройств", удалив из БД все токены авторизации текущего пользователя.
0
|
|
|
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
|
||||
| 10.10.2020, 00:23 [ТС] | ||||
|
У нас есть 1 пользователь, который входит с разных устройств. При удачной проверке логин/пароль, мы устанавливаем на устройстве куку. В куке прописан токен. Этот же токен пишем в бд. При любом действии проверяем есть ли токен у пользователя, есть ли такой в бд. Если есть - идентифицируем пользователя. Реализация задачи на токенах. А что с сессиями? Как в данном примере сессия даст преимущество? Можно сказать - что если злоумышленник захватит устройство, то он сможет на нем работать 24 минуты (стандартное время сессии). В то время как с кукой - постоянно (то что срок жизни он продлит даже не обсуждаем). Но можно легко реализовать механизм "выйти из под всех устройств". Что часто и делается во многих проектах. Все эти вопросы безопасности уже давно решены двухэтапной аутентификацией.
0
|
||||
|
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,823
|
||
| 10.10.2020, 00:39 | ||
|
А что если это не какой-то простой сайт, а какой-нибудь банк-онлайн? Вот вы заходите с чужого браузера посмотреть свои счета. Вы сами как пользователь, где бы захотели, чтоб хранился ваш токен?
0
|
||
|
Невнимательный
|
||
| 10.10.2020, 00:58 | ||
|
И похожее на то что только для авторизованых. PHP-cессии отличаются немного другим подходом. Например посмотрите в комментариях к странице https://www.php.net/manual/ru/... andler.php Есть так-же реализация на db-таблицах. Стартовать-ли сессии только для авторизовных, разлогинивать-ли через какое-то время, что именно держать в сессии ... можно так-же решить в скриптах. Но нужны-ли все эти встроенные механизмы или Вам достааточно одной постоянной таблицы users, как-бы уже дело выбора. Если Вы как-то отслеживаете действия юзеров и где-то храните на сервере какие-то временные данные, то это сессия. ... Но не обязательно используется встроенные механизмы. А то что получаете с клиента, может оказаться чем-угодно, и это однозначно куча лишнего кода, проверять эти данные, фильтровать ...
0
|
||
|
Заблокирован
|
||
| 10.10.2020, 13:09 | ||
|
надо при входе на другом устройстве вносить в БД токен ЭТОГО ДРУГОГО устройства, а при проверке совпадения сессионного токена с токеном из БД делать разлогин на устройстве, где он не совпал, оставляя ВСЕГДА только ОДНО залогиненное устройство))) всё намного проще: в ларавеле видимо целая отдельная таблица для этого создана? ))) нужен один столбец для этого
0
|
||
| 10.10.2020, 13:09 | |
|
Помогаю со студенческими работами здесь
20
Зачем это используют зачем используют 2 read!!! Зачем используют конструкцию !()
Зачем используют сегментные регистры в Windows Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|