как убедиться, что токен исходит от устройства или браузера, которые вошли в систему - PullRequest
0 голосов
/ 30 марта 2019

Я разрабатываю веб-API для C #.

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

Проблема

Обычно токены хранятся в поварах и в местном магазине, и злоумышленник может скопировать токен и перенести его на другое устройство, и он получитдоступ к учетной записи.

Как подтвердить, что этот токен используется устройством или браузером, которые вошли в систему?

1 Ответ

1 голос
/ 30 марта 2019

Можно, но они не очень эффективны .Взлом куки может быть осуществлен, если кто-то имеет доступ к компьютеру жертвы или если трафик не зашифрован (HTTP).Есть несколько шагов, которые вы можете сделать в качестве контрмеры.

Если вы подключаете токен к сеансу, вы можете изменить время ожидания сеанса , хотя это также затрудняет непрерывное использование вашего сервиса.Это то, что используют интернет-банки, обычно 4-5-минутное окно.

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

Что касается того, как отличить устройства, то это невозможно, если вы не пишете свое собственное приложение для ПК или мобильного устройства.,Вы можете использовать IP, но это может измениться, или злоумышленник может иметь тот же IP.Настольные приложения обычно используют подключенные аппаратные устройства , именно так, например, лицензия Windows привязана к вашей машине.Но ими можно манипулировать или даже имитировать, в худшем случае пользователь отключает мышь и выходит из системы.Поэтому использовать аппаратные идентификаторы гораздо сложнее, насколько я знаю, Microsoft использует машинное обучение, чтобы определить, заменяете ли вы видеокарты или переносите лицензию на компьютер вашей бабушки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...