Как лучше всего предотвратить обмен токенами?


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

2 3

2 ответа:

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

А именно:

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

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

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

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

Надеюсь, это поможет