首页 > 解决方案 > 使用 Laravel 的 CSRF 令牌 nuxt

问题描述

我基于 Nuxt.js 和 Laravel 构建了一个网站,现在我需要实现一个联系表单。

问题是我不确定如何使表单安全,因为没有任何人发布到我的端点可以发送消息。有没有办法将 csrf 令牌与我的 nuxt.js 表单合并?

我认为唯一的解决方案是使用验证码,但我想我会问是否有任何方法可以避免它?(或两者兼有)

标签: laravelnuxt.js

解决方案


您无法阻止人类发送垃圾邮件(人们可以通过验证码)。

为了防止脚本/机器人,有多种解决方案,但并不完美。

首先,您可以使用端点上的节流中间件来限制端点调用。这将限制该端点的调用次数。这可能会影响有多少(真实)用户可以提交表单。

保护您的 api 的另一种方法是拥有应用程序密钥和应用程序密钥(请参阅 laravel 护照)。即使表单是公开的,所有 api 调用都应该被授权。意味着客户端在发出请求时应传递应用程序密钥和秘密。

使用 CORS 可以帮助您只允许来自特定域的调用。默认情况下,Laravel CORS 包将允许所有域。您只能将其限制为您的客户域。

希望能帮助到你。


推荐阅读