📜  laravel 添加 crf 令牌形式 - PHP (1)

📅  最后修改于: 2023-12-03 15:02:37.812000             🧑  作者: Mango

Laravel 添加 CSRF 令牌

在 Laravel 应用程序中,为了提高安全性,通常会使用 CSRF 令牌进行防御。本文将介绍如何在 Laravel 中添加 CSRF 令牌。

什么是 CSRF 令牌

CSRF 全称 Cross-Site Request Forgery,中文名为跨站请求伪造。简单来说,攻击者可以利用用户已经登录过的浏览器,以用户的身份进行恶意操作。

为了防止 CSRF 攻击,通常会在表单中添加隐藏的 CSRF 令牌。这个令牌是由服务器端生成的一段随机字符串,在表单提交时一起发送到服务器端,用于验证请求的合法性。

在 Laravel 中添加 CSRF 令牌

在 Laravel 中,添加 CSRF 令牌非常简单,只需要在所有使用 POSTPUTDELETE 方法的表单中添加一个 _token 字段即可。同时,在 Laravel 的表单帮助函数中,也已经内置了 CSRF 令牌的支持。

使用 Laravel 表单帮助函数

使用 Laravel 表单帮助函数时,可以使用 @csrf Blade 指令来生成 CSRF 令牌:

<form method="POST" action="/foo">
    @csrf

    <!-- 表单字段 -->
</form>

在表单中添加 @csrf 即可生成一个名为 _token 的隐藏字段,并将其值设置为随机生成的 CSRF 令牌。

手动添加 CSRF 令牌

在直接编写 HTML 表单时,需要在表单中手动添加 _token 字段:

<form method="POST" action="/foo">
    {{ csrf_field() }}

    <!-- 表单字段 -->
</form>

在表单中添加 {{ csrf_field() }},Laravel 将会输出一个名为 _token 的隐藏字段,并将其值设置为随机生成的 CSRF 令牌。

总结

为了防止 CSRF 攻击,我们通常会添加 CSRF 令牌到表单中。在 Laravel 中,我们通过内置的表单帮助函数或者手动添加 _token 字段,可以非常简单地添加 CSRF 令牌。