Laravel API 使用 CSRF 令牌的请求
Laravel API requests with CSRF token
我正在使用 Laravel 框架创建一个网站,我使用 jQuery 而不是 Vue。我想知道在已经登录的情况下安全地执行 post 请求时最好使用哪种方法。
我目前正在使用 Laravel 的默认身份验证和 web/routes 以在登录时显示正确的视图。
现在为了更流畅的用户体验,我想使用 jQuery POST 请求而不是提交表单,这样我就可以检索 JSON 并进行必要的更改而无需重新加载网站.
对 JWT 和 OAuth2 有一些经验,但在这种情况下真的有必要吗?
找到这个线程: 这解释了在 POST-request header 中发送 CSRF-token 是不好的做法,因为 REST API 是无状态的.但是这个状态已经在用户登录时设置了,所以我不明白这对我的情况会造成什么危害?
是什么让它与 JWT 令牌如此不同?它们都是代表登录用户的令牌,或者我错了(如果我没记错的话,CSRF 令牌是 Laravel 中的 session 令牌)?
希望确保网站得到妥善保护,因此非常感谢所有反馈。
在我个人看来,这取决于您如何对 ajax
请求和总体项目结构进行分类。您的项目完全 restful 吗?好像所有的请求都需要RESTful而且没有直接登录?在那种情况下,您的应用程序是无状态的,每个请求都需要某种身份验证,这不是通过 csrf_token
.
进行的理想方式
例如,如果您使用第 3 方 API,您实际上从未登录,但您使用 JWT 或 OAUTH 令牌来确保您的请求已通过身份验证。
现在在你的情况下,如果你的整个网站基本上遵循非 restful 重定向策略,并保持会话,那么它是有状态的。会话是维持其状态的。因此,对于简单的表单保存,如果您想使用 ajax 而不是刷新页面,发送 csrf_token 就完全没问题了。
在这种情况下,内部 laravel 不太关心您如何发送 POST 请求,是通过刷新提交还是 ajax。所以理想情况下没有任何改变只是你会 return json 而不是重定向并在 javascript.
中处理它
它的安全性取决于您在控制器中验证 post 请求的正确程度,您如何确保不将无效数据发送到服务器等。
我正在使用 Laravel 框架创建一个网站,我使用 jQuery 而不是 Vue。我想知道在已经登录的情况下安全地执行 post 请求时最好使用哪种方法。
我目前正在使用 Laravel 的默认身份验证和 web/routes 以在登录时显示正确的视图。
现在为了更流畅的用户体验,我想使用 jQuery POST 请求而不是提交表单,这样我就可以检索 JSON 并进行必要的更改而无需重新加载网站.
对 JWT 和 OAuth2 有一些经验,但在这种情况下真的有必要吗?
找到这个线程:
是什么让它与 JWT 令牌如此不同?它们都是代表登录用户的令牌,或者我错了(如果我没记错的话,CSRF 令牌是 Laravel 中的 session 令牌)?
希望确保网站得到妥善保护,因此非常感谢所有反馈。
在我个人看来,这取决于您如何对 ajax
请求和总体项目结构进行分类。您的项目完全 restful 吗?好像所有的请求都需要RESTful而且没有直接登录?在那种情况下,您的应用程序是无状态的,每个请求都需要某种身份验证,这不是通过 csrf_token
.
例如,如果您使用第 3 方 API,您实际上从未登录,但您使用 JWT 或 OAUTH 令牌来确保您的请求已通过身份验证。
现在在你的情况下,如果你的整个网站基本上遵循非 restful 重定向策略,并保持会话,那么它是有状态的。会话是维持其状态的。因此,对于简单的表单保存,如果您想使用 ajax 而不是刷新页面,发送 csrf_token 就完全没问题了。
在这种情况下,内部 laravel 不太关心您如何发送 POST 请求,是通过刷新提交还是 ajax。所以理想情况下没有任何改变只是你会 return json 而不是重定向并在 javascript.
中处理它它的安全性取决于您在控制器中验证 post 请求的正确程度,您如何确保不将无效数据发送到服务器等。