Насколько безопасен OAuth2 для веб-приложений? - PullRequest
0 голосов
/ 17 января 2019

Давайте рассмотрим одностраничное клиентское приложение, разработанное с использованием HTML и Javascript.

В этом случае, даже если для запроса токенов доступа используется неявный поток кода или код аутентификации, все же clientID и Secret все равно будут найдены в некотором Javascript, который может делать запросы токена. Кроме того, передача токена доступа в заголовке запроса (или параметре запроса) все еще отображается в трассировке сети. Кроме того, токен доступа должен храниться локально в браузере.

  • Насколько безопасно использовать OAuth2 для веб-приложений?
  • Как можно защитить информацию пользователя, если клиент (браузер) скомпрометирован.

Спасибо.

1 Ответ

0 голосов
/ 17 января 2019

Для неявного OAuth вы не используете Client Secret в браузере javascript. Вам нужен только идентификатор клиента. Идентификатор клиента не является секретом и считается общедоступной информацией. Идентификатор клиента и области действия определяют, какие разрешения для служб вы хотите авторизовать.

Насколько безопасно использовать OAuth2 для веб-приложений?

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

Как можно защитить информацию пользователя, если клиент (браузер) скомпрометированы

Если браузер пользователя скомпрометирован, ничто не может быть защищено. После создания токена OAuth с правами на выполнение X скомпрометированный браузер может продолжать выполнять X до истечения срока действия токена.

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

Таким образом, взломанный браузер потенциально не имеет безопасности, независимо от того, какая технология используется для аутентификации и авторизации.

...