Мое веб-приложение может реализовать пользовательский вход в систему и остаться не сохраняющим состояние?

У нас есть веб-приложение, которое является не сохраняющим состояние. Мы используем аутентификацию HTTP по SSL/TLS. Браузеры пользователя, по-видимому, хранят учетные данные аутентификации (возможно даже после завершения работы браузера, если они настраивают свои браузеры тот путь.) Мы проверяем их на каждом доступе.

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

  • Останьтесь не сохраняющими состояние.
  • Не требуют, чтобы пользователи перепечатали учетные данные на каждом доступе.
  • Будьте, по крайней мере, так же безопасны как аутентификация HTTP по SSL/TLS.

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

Мы могли сохранить имя пользователя и хеш пароля, как предложено здесь: Что я должен сохранить в cookie для реализации, "Помнят меня" во время пользовательского входа в систему, но это лучше?

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

Мы могли сохранить зашифрованную версию учетных данных как cookie и затем дешифровать и проверить на каждом доступе. Это кажется, что это немного более безопасно, чем аутентификация HTTP и также не требует состояния. Однако я не уверен, что мы хотим дополнительные издержки дешифрования. И это действительно более безопасно? Если кто-то получает копию зашифрованного (или хешированный, как выше) строка, разве который не предоставляет им тот же доступ, как будто у них был пароль?

Я ценил бы Ваши мысли, но давайте запустимся учитывая, что аутентификация HTTP по SSL/TLS достаточно безопасна в наших целях, и мы хотим остаться не сохраняющими состояние.

Править

Еще после некоторого исследования я думаю этот stackoverflow вопрос: Клиентские сессии указывают проблему намного лучше, и ответы соответственно лучше также. Благодаря всем для Вашего входа.

8
задан Community 23 May 2017 в 12:01
поделиться

3 ответа

В закрытой системе (интрасети компании или просто обычный сайт, но с небольшой, прилично подкованной толпой) проверка с помощью SSL-сертификата была бы предпочтительнее. Выпустите сертификат для каждого пользователя, позвольте им установить его в своих браузерах, и вы можете отозвать доступ для этого сертификата в любое время (см., Например, систему идентификации ssl-сертификатов myopenid.com (к сожалению, банкомат с ошибками).

потребует некоторой работы со стороны ваших пользователей, и если это невозможно / желательно, токен cookie будет намного предпочтительнее, и независимо от того, ищите ли вы комбинацию user / passwd или токен cookie, не должно делать так много разница.

1
ответ дан 6 December 2019 в 04:43
поделиться

Вы можете изучить сеансы PHP в качестве альтернативы файлам cookie.

Вы можете начать сеанс одним вызовом session_start () .

Оттуда вы можете хранить любые данные о пользователе в глобальном массиве $ _ SESSION .

Это не принимает во внимание, в первую очередь, КАК вы будете аутентифицировать пользователей. Обычно это делается путем поиска сохраненных хэшей имен пользователей / паролей в базе данных.

-1
ответ дан 6 December 2019 в 04:43
поделиться

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

И то, и другое нужно искать в какой-либо базе данных. У вашего приложения уже было состояние. Состояние аутентификации или отсутствия аутентификации.

Отправленные имя пользователя и пароль были точно такими же, как и случайный токен.

Итак, я отвечу на ваш вопрос: нет. Веб-приложение не может реализовать какую-либо форму аутентификации пользователя и оставаться без гражданства.

-2
ответ дан 6 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: