Я создал независимый тип аутентификации для моего приложения REST. Вот как это работает:Существует способ взлома идентификатора сеанса запроса из контейнера J2EE?
1 - журналы пользователя в переднем конце
2 - Бэкэнд проверяет, если имя пользователя и пароль в порядке, то он возвращает объект JSON к переднему концу с идентификатором сеанса:
(credential.setToken(request.getSession().getId());
3 - передний конец поднимите маркер и сохраняет его на клиенте.
4 - После этого процесса маркер отправляется по каждому запросу, выполненному в REST API.
5 - API-сервер сервера проверяет, является ли токен отправленным одним и тем же запросом, тогда доступ к REST API действителен.
Это очень просто, и на данный момент его работа отлично. На данный момент я не могу найти проблемы с безопасностью.
Из-за того, что я хочу поделиться этим и задать несколько вопросов о нем:
1 - это такой контроль безопасности безопасный способ обезопасить свой REST API?
2 - Даже если злоумышленник знает действительный request.getSessionID(), есть способ отправить его или изменить его по запросу в контейнер J2EE?
Спасибо.
Вы используете SSL? В общем, домашняя безопасность всегда является риском. – Kayaman
Здесь есть концептуальное недоразумение. S в REST означает Stateless, а не Stateful. Вам в основном нужно отправить основной заголовок авторизации HTTP по каждому запросу. См. Также a.o. http://restcookbook.com/Basics/loggingin Другое недоразумение в том, что J2EE умер почти десять лет назад с момента внедрения Java EE 5. Не уверен, какой REST API вы используете, но JAX-RS никогда не существовал в J2EE. – BalusC
* Фактически * 'REST' означает' Представительский перевод состояния', но в его чистом виде он без гражданства. Однако в настоящее время общий прецедент включает аутентификацию и извлечение «API или ключа Auth», который в основном эквивалентен идентификатору сеанса. – Kayaman