如何解决将访问令牌映射到客户端 IP
我的设置
我使用 React 和 Django 作为前端和后端。出于授权目的,我选择了 Django-rest-knox,它通过存储在数据库中的令牌工作。
我的问题
现在,如果攻击者获得令牌(登录后存储在客户端的本地存储中),他就可以做用户能够做的任何事情。令牌有一定的到期时间,并且可以由用户自己销毁用户的所有令牌。但我想更安全一点。
我的解决方案
我的想法是将所有令牌映射到用于登录的 IP 地址(用户的)。这样令牌只能在用于登录的机器上使用。将在后端检查令牌到 IP 地址的关系。
我的问题
感谢您的帮助!
解决方法
-
这个想法可行但效率不高。主要问题是,并不是每个人都使用静态 ip 地址,这会引起用户的大量反馈,因为每次某些用户的 ip 地址更改(通过调制解调器重置、断电、提供商问题等)他/她/它都必须再次进行身份验证。
-
您对几乎所有后端框架以及 django 都使用“HTTP_X_FORWARDED_FOR”元。你可以检查这个链接。 How do I get user IP address in django?
- 这个想法可能伴随着安全性,但我会给你一个更好的想法,我目前在我自己的应用程序中使用。
我的解决方案:刷新令牌。使用刷新令牌,每次访问令牌到期(理想的平均 15 分钟)时,用户将通过他/她/它的刷新令牌请求新的访问令牌。通过这种方式,即使攻击者获得用户的访问令牌,他/她/它也只能使用 15 分钟(您也可以使用 5-10-15-... 分钟)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。