您当前的位置:首页 > 百宝箱

PHP laravel csrf_token

2024-09-30 21:05:52 作者:石家庄人才网

石家庄人才网今天给大家分享《PHP laravel csrf_token》,石家庄人才网小编对内容进行了深度展开编辑,希望通过本文能为您带来解惑。

在 Laravel 中,CSRF 保护是通过同步表单中的隐藏字段值和 session 中存储的 token 来实现的。每次提交表单时,Laravel 都会比较这两个值,如果不匹配,则请求会被拒绝。

CSRF (Cross-site request forgery) 跨站请求伪造,也被称为“One Click Attack”。攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求看起来是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,甚至于购买商品、虚拟货币转账等。

Laravel 为每个用户会话生成一个 CSRF 令牌,该令牌用于验证发送到应用程序的请求是否来自预期用户。CSRF 令牌存储在用户的会话中,并且攻击者无法访问或修改此令牌。

要启用 CSRF 保护,您需要在 `app/Http/Middleware/VerifyCsrfToken.php` 文件中取消注释 `protected $except = [];` 数组。此数组应包含您希望从 CSRF 保护中排除的 URL 或路由。例如,如果您想排除 `/login` 路由,则数组应如下所示:

`protected $except = ['/login'];`

启用 CSRF 保护后,您需要在所有表单中包含一个名为 `_token` 的隐藏字段。此字段的值应为 `csrf_token()` 函数的返回值。例如,以下表单包含一个 `_token` 字段:

``

石家庄人才网小编提醒您,`@csrf` 是一个 Blade 指令,它生成一个包含当前 CSRF 令牌值的隐藏输入字段。当表单提交时,Laravel 会自动检查请求中包含的令牌是否与存储在用户会话中的令牌匹配。如果不匹配,则请求会被拒绝。

除了使用 `@csrf` 指令外,您还可以使用 `csrf_token()` 函数手动生成 CSRF 令牌。例如,以下代码将生成当前 CSRF 令牌:

``

有关 Laravel 中 CSRF 保护的更多信息,请参阅 https://laravel.com/docs/8.x/csrf。

石家庄人才网小编对《PHP laravel csrf_token》内容分享到这里,如果有相关疑问请在本站留言。

版权声明:《PHP laravel csrf_token》来自【石家庄人才网】收集整理于网络,不代表本站立场,所有图片文章版权属于原作者,如有侵略,联系删除。
https://www.ymil.cn/baibaoxiang/1029.html