Как я могу реализовать безопасность в веб-сервисе? - PullRequest
1 голос
/ 09 июня 2011

У меня есть служба REST, которая вызывается мобильным приложением;Мне нужно, чтобы пользователь вошел в систему, затем служба генерирует уникальный токен, связанный с идентификатором пользователя, и эта пара userId / token передается при каждом последующем вызове WS.

Мне не очень нравится это решениепотому что, даже если это очень сложно, если я изменю uid и получу правильный токен, я могу «войти в систему» ​​как другой пользователь, поэтому я пытаюсь понять, как лучше всего обрабатывать проверку подлинности веб-службы для мобильного (и не)применение.

Ответы [ 2 ]

1 голос
/ 09 июня 2011

Возможно, вы захотите забыть решение с токеном / идентификатором и подумать о том, чтобы пойти по пути SSL / базовой аутентификации.SSL обеспечит шифрование и безопасную связь, но не обеспечит доступ к вашим конкретным веб-сервисам на стороне сервера.Для этого вы можете попробовать стандартную базовую аутентификацию пользователя по паролю http на каждый вызов.Таким образом, вам не нужно беспокоиться о поддержании состояния при каждом вызове REST.Каждый вызов будет иметь явную ссылку на пользователя.Да, вам нужно будет проходить повторную аутентификацию пользователя при каждом вызове, что немного затрудняет, но вы можете кэшировать свои результаты.Однако я далеко не специалист по этому вопросу.

1 голос
/ 09 июня 2011

Ваша проблема не в методологии, а в том, что ваша служба проверяет не комбинацию UID и токена, а токен.Это проблема программирования, а не методологии.

Насколько безопасна служба?Вы говорите сверхсекретный уровень безопасности?Банковское дело?Сайт моего футбольного клуба?Для обеспечения высокого уровня безопасности вы можете использовать цифровые сертификаты, но это делает методологию гораздо более сложной.Но ... Даже если вы собираетесь изменить UID / Token (или AppId, User и т. Д.), Вам все равно нужно исправить тот факт, что работает правильный токен + неверный UID.Это ошибка, если двухсторонняя аутентификация обязательна.Изменение методов ничего не решит, если у вас нет правильного программирования на стороне сервера, чтобы избежать обхода системы.

Возможно, вы также захотите посмотреть, как вы предоставляете токен.Должно ли это быть в автономном режиме, или приемлем один метод регистрации REST.Это приводит к уровню безопасности, который вам требуется.

...