使用nuxt-js和laravel API的安全问题



我正在使用laravel API和Nuxt Js进行一个大型项目,以前从未使用过API,并担心网站的安全性。

我使用的是JWT(Laravel的JSON Web令牌身份验证(。

例如,当用户更新其配置文件密码时,有一个带有用户Id的密码和旧密码(取自Nuxt/Auth(发送到API,我想知道它的安全性如何?有人能拦截请求并将ID更改为另一个用户的ID吗?这将允许他们在不访问其他人帐户的情况下更改其他人的数据或发布其他内容。如果不安全,怎么能防止呢?

由于只使用jwt通过nuxt/auth进行身份验证,除了登录之外,服务器端没有其他请求的身份验证,我是否应该为登录实现laravel-auth,并为每个请求实现auth::check((?

使用JWT是正确的。关于它的安全性,你要问问自己,你如何从前端发送数据,你是否验证了每个给定的输入,令牌是如何存储的,令牌在哪里是静态的,或者有一个到期日期,每个给定的间隔都需要刷新。

为了避免用户更新另一个用户的配置文件,您需要添加更多的安全层,如模型策略或门,并使用请求数据的所有者id(或用户id(检查发件人id。拉拉维尔让你考虑到了这一点。请参阅文档。

您还可以制作一个刷新令牌方法(我相信它已经在JWT包中实现(,并为每个给定的令牌添加一个到期日期,然后在到期时从客户端进行刷新,这可能看起来有点额外,但建议并认为这是安全的好做法。

并且您不需要一直执行Auth::check(),只需使用您正在使用的插件提供的中间件,并使用auth()->user()Auth::user()来获取当前已验证用户的数据。

经过数小时的挖掘,找到了最佳且简单的方法:用middleware('auth:api')保护需要保护的路由并且在每一个需要用户验证的axios帖子或get中;授权";标头中包含Auth/Nuxt中的令牌,该令牌对每个用户都是唯一的。

最新更新