首页 > 解决方案 > 如何使用密码授予流程防止 Laravel Api 中的令牌滥用

问题描述

我在我的 Laravel api 中使用密码授予流程,但我发现生成给用户的令牌可能被滥用。

我有在一个域中运行的 api 和在另一个域中使用它的 web 应用程序。我想确保即使有人从我的应用程序内的 Localstorage 复制令牌,它在我的消费域之外也是无用的。

我发现这个问题的唯一解决方案是使用中间件或在 Api 方法中检查域。有什么安全的方法可以做到这一点吗?我应该使用刚才提到的中间件吗?

标签: laravelapioauth

解决方案


老实说,我认为没有办法可以防止这种情况发生。

我假设 Web 应用程序正在使用客户端代码来获取您的 API,因此 IP 地址将始终是客户端,因此您不能将 API 限制为特定 IP。

此外,调用域是无用的,因为您可以在邮递员或任何其他 API 发送工具中伪造它。

这是一场你不会轻易获胜的战斗。

我会问用户真正滥用我的 API 的方式是什么。如果他们想使用他们的令牌在您的应用程序内对他们的帐户执行操作,那么这发生在您的应用程序内部还是外部有什么关系?如果他们拥有令牌,他们如何滥用您的平台?如果有滥用它的方法,那么您最好处理允许滥用发生的根本原因,而不是试图限制令牌的使用方式。


推荐阅读