2016-08-12 3 views
3

Я ищу идеи, чтобы клиенты не делились токенами oauth, т. Е. Клиент, создавший токен, должен использовать только тот, который его использует. Что можно сделать на стороне сервера, чтобы этот клиент не мог обменять токен с кем-то еще?Каков наилучший способ предотвратить обмен токеном?

+0

Как [Предотвращение зарегистрированных пользователей от совместного использования паролей] (http://stackoverflow.com/questions/33717358/preventing-registered-users-from-sharing-passwords)? – holmis83

ответ

1

Есть несколько IETF RFCs/проектов, которые пытаются обеспечить способ проверить клиент является «владельцем» маркеров. Эти спецификации связаны с протоколом OAuth2 Framework, однако они могут быть реализованы в любых других контекстах обмена токенами.

Они именно:

Еще один интересный протокол ястреб токены: см https://github.com/hueniverse/hawk (Эран Хаммер был вкладчиком OAuth2)

Как вы увидите его, все эти спецификации зависит от запроса, подписанного клиентом. Кажется, это лучший способ проверить, разрешено ли клиенту использовать токен. Любые другие проверки, такие как IP-адрес, User Agent, Device ID ... не являются надежными, поскольку их можно подделать.

0

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

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

Надеется, что это помогает