📅  最后修改于: 2023-12-03 15:02:37.812000             🧑  作者: Mango
在 Laravel 应用程序中,为了提高安全性,通常会使用 CSRF 令牌进行防御。本文将介绍如何在 Laravel 中添加 CSRF 令牌。
CSRF 全称 Cross-Site Request Forgery,中文名为跨站请求伪造。简单来说,攻击者可以利用用户已经登录过的浏览器,以用户的身份进行恶意操作。
为了防止 CSRF 攻击,通常会在表单中添加隐藏的 CSRF 令牌。这个令牌是由服务器端生成的一段随机字符串,在表单提交时一起发送到服务器端,用于验证请求的合法性。
在 Laravel 中,添加 CSRF 令牌非常简单,只需要在所有使用 POST
、PUT
或 DELETE
方法的表单中添加一个 _token
字段即可。同时,在 Laravel 的表单帮助函数中,也已经内置了 CSRF 令牌的支持。
使用 Laravel 表单帮助函数时,可以使用 @csrf
Blade 指令来生成 CSRF 令牌:
<form method="POST" action="/foo">
@csrf
<!-- 表单字段 -->
</form>
在表单中添加 @csrf
即可生成一个名为 _token
的隐藏字段,并将其值设置为随机生成的 CSRF 令牌。
在直接编写 HTML 表单时,需要在表单中手动添加 _token
字段:
<form method="POST" action="/foo">
{{ csrf_field() }}
<!-- 表单字段 -->
</form>
在表单中添加 {{ csrf_field() }}
,Laravel 将会输出一个名为 _token
的隐藏字段,并将其值设置为随机生成的 CSRF 令牌。
为了防止 CSRF 攻击,我们通常会添加 CSRF 令牌到表单中。在 Laravel 中,我们通过内置的表单帮助函数或者手动添加 _token
字段,可以非常简单地添加 CSRF 令牌。