Пользователь может войти с двух браузеров одновременно - нормально ли это?

377
05 августа 2021, 06:10

На моем сайте пользователь может войти и оставаться в системе с двух разных браузеров, правильно ли это и чем это может грозить ? На прошлых проектах мне приходилось реализовывать функцию которая позволяла держать активной только одну сессию от одного пользователя. Есть ли какие либо подводные камни когда пользователь одновременно может входит с разных браузеров ? Нужно ли давать пользователю такую возможность или сессия должна быть только одна?

Answer 1

На самом деле все просто, как "фирма Сэлдом". Если есть существенная причина ограничить пользователя всего одной (ну, или как вариант - n) активной сессией - это нужно делать. При этом по возможности пользователю давать выбор какую из уже существующих сессий принудительно завершить. Если возможности нет - самостоятельно "глушить" сессию с самой старой последней активностью.

Если такой существенной причины нет - нет смысла и в ограничении, зачем лишний огород городить?

На практике такое ограничение по активным сессиям я встречал (да и сам писал, чего греха таить) только для ресурсов, предоставляющих доступ на платной основе. Например, платный доступ к видео/аудио архивам, стримам, картам и т.п. Чтобы "халявщики", купив одну подписку на всех, не расшаривали ее на своих сайтах для всех желающих и зарабатывали на рекламе. Как частный случай, встречал ограничение по количеству одновременных сессий для бесплатного доступа к платному сервису. Например, бесплатно можно работать с контентом только с 1 браузера/приставки/телевизора, хочешь с двух одновременно (например, со стационарного компа и с ноутбука или смартфона) - оплати доступ для второй сессии (это имеет смысл, если предоставляется доступ к сервису и в нем есть частное хранилище некоего контента - документов, изображений, файлов и т.п.).

Так что ответы на Ваши вопросы "правильно ли это?" и "Нужно ли давать пользователю такую возможность или сессия должна быть только одна?" никто кроме Вас дать не сможет. Просто потому, что никто из нас не знает нюансов функционирования Вашего сайта. :)

P.S. Если Вас сильно заботит тема безопасности - дайте возможность пользователю в его профиле просмотреть список активных сессий и принудительно завершить их при необходимости.

P.P.S. Вспомнил еще две сферы применения такого подхода к пользовательским сессиям.

  • Банковская сфера и финансовые операции.
  • Сфера безопасности и доступ к конфиденциальным данным.

Сам в этих областях не писал, но пользовался. :)

P.P.P.S. Иногда имеет смысл ограничивать количество и длительность открытых сессий для определенных категорий пользователей. Например, доступ администратора к админке, кассира/бухгалтера в биллинговой системе, или специалиста по настройке оборудования, работающего удаленно с выездом на территорию клиента. При этом тот же пользователь имеет обычный доступ к основному сайту компани на "общих основаниях" - т.е. без ограничения на количество сессий.

Answer 2

Перед тем, как задавать вопрос по поводу - страшно ли это? Походи по сайтах (любых), и попробуй найти сайт где за два логина (сессии) тебе что-то скажут? Верный ответ: нигде. Никто не боиться этого, т.к. в любом случае, обойти это можно будет всякими VPN-сервисами или же простой сменой прокси-сервера, только лишь усложнишь себе жизнь такой выхоткой.

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

READ ALSO
Получить данные в двух столбцах

Получить данные в двух столбцах

У меня есть таблица с сообщениями, где sender_id указывает кто отослал, а recipient_id указывает кто принял, и есть таблица users, которая содержит инфу...

154
Как сделать ввод значений для переменной в одну строку?

Как сделать ввод значений для переменной в одну строку?

Я пытаюсь сделать ввод значений для переменной в 1 строку, но ничего не получается

141
Не срабатывает mysql запрос, но ошибок вообще нет

Не срабатывает mysql запрос, но ошибок вообще нет

Не пойму почему данные не добовляються в бд, хоть ошибок нет

295
Как не перенагрузить сервер большим количеством запросов?

Как не перенагрузить сервер большим количеством запросов?

Представим некую абстрактную страницу, на которой через AJAX, путем запроса к API на PHP выполняются запросы к БДОбновлять данные необходимо 1 раз...

206