Laravel csrf_field() - 仅适用于 method="POST" 的表单?

Per*_*ika 3 csrf laravel laravel-5

我对 CSRF 攻击一无所知,但我知道在 Laravel 中我们应该在表单中包含一个隐藏的 CSRF 令牌字段:

<form method="POST" action="/profile">
    {{ csrf_field() }}
    ...
</form>
Run Code Online (Sandbox Code Playgroud)

我们应该将它包含在带有 method="GET" 的表单中吗?

<form method="GET" action="/search">
    {{ csrf_field() }}
    ...
</form>
Run Code Online (Sandbox Code Playgroud)

例如,我有一个带有 method="GET" 的搜索输入(表单) - 所以一切都将在 URL 中可见,包括 CSRF 令牌......这对我来说根本不是问题,但我只是不确定将它放在“GET”表单中有意义吗?

Qaz*_*azi 5

好吧,您不需要使用 Form Get Request 添加 CSRF 令牌。跨站点请求伪造 (CSRF) 是一种恶意利用,其中代表经过身份验证的用户执行未经授权的命令。

您可以在此处查看基本详细信息