📜  laravel 重新路由 419 - PHP (1)

📅  最后修改于: 2023-12-03 14:43:50.464000             🧑  作者: Mango

Laravel 重新路由 419 - PHP

当使用 Laravel 进行表单提交时,有时会遇到“419 错误”。这个错误通常由 Laravel CSRF 中间件引起,它可以帮助保护应用程序免受跨站请求伪造攻击。

原因

当表单提交时,Laravel 会验证该请求是否已设置 CSRF 令牌。如果检测到缺少或不正确的令牌,Laravel 将返回 419 错误。这个错误让你的应用程序更加安全,因为它帮助防止 CSRF 攻击。

解决方法

一种解决方法是禁用 CSRF 中间件,但这会使应用程序更加脆弱,因此不建议这样做。

正确的方法是使用正确的 CSRF 令牌。如果是 Laravel Blade 模板,可以使用 @csrf 帮助器生成 CSRF 令牌。在表单中添加以下代码行:

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

如果您使用的是纯 HTML 表单,则需要手动添加 CSRF 令牌。可以将 Laravel 生成的 CSRF 令牌作为隐藏字段添加到表单中。例如:

<form method="POST" action="/...">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    ...
</form>
结论

Laravel CSRF 中间件是保护您的应用程序免受 CSRF 攻击的重要组件。如果您收到“419 错误”,则表示您的 CSRF 令牌无效或不正确。通过正确使用 CSRF 令牌,可以避免这个问题并保护您的应用程序。