【问题标题】:Laravel CSRF Token handle in form save, the correct useLaravel CSRF Token 句柄在表单保存,正确使用
【发布时间】:2021-02-21 08:13:33
【问题描述】:

我正在上一门 laravel 8 课程,老师正在解释一个简单的杂项。在一部分中,他说在表单中我们必须包含 @csrf 以便 laravel 接受表单,我理解这一点,但在控制器中他说首先我们必须从表单发布中排除该字段:

$data = request()->except('_token')

这是将表单数据保存到数据库的正确方法吗? laravel 在那一点上需要那个令牌吗?或者我们可以丢弃令牌?

【问题讨论】:

  • 令牌仅由检查它的中间件使用,因此此时您不再需要它,因为它不是实际用户数据的一部分......您甚至可以将中间件添加到VerifyCsrfToken 中间件之后的网络组,可以为您从输入中删除它

标签: php laravel csrf


【解决方案1】:

csrf 仅由中间件用于防止称为 (csrf) 的漏洞,您可以像这样阅读更多关于它的信息,https://owasp.org/www-community/attacks/csrf。 在您的情况下,您从请求中获取所有数据期望这个令牌,因为您不再需要这个。您应该使用可填充数组在表中插入特定列,以保护自己免受分配错误。像这样https://laravel.com/docs/8.x/eloquent#mass-assignment

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-13
    • 2013-06-18
    • 1970-01-01
    • 2016-10-09
    • 2017-06-17
    • 2022-06-11
    • 2014-10-26
    • 2018-10-14
    相关资源
    最近更新 更多