防止向 .net 核心网站提交联系表单 api

prevent submission of contact form to .net core web api

我创建了一个网站,该网站有一个联系表单,可以向我发送电子邮件,我想要实现的操作是,当任何用户(无需登录)提交该联系人时form 在一段时间内防止再次提交该表单,这是为了防止垃圾邮件。 我一直在研究 JWT 令牌,并考虑在用户提交该表单后使用令牌进行验证,但我不知道这是否是一个可能的解决方案,我想知道是否有另一种方法可以做到这一点。 我在后端使用 C# Web Api,在客户端应用程序中使用 Angular 5。

我认为你应该使用 Google recapcha

因为您提到 Angular 5 用于前端开发。您可以使用此 ngx-recaptcha 在客户端生成验证码,并在后端验证生成的 recapcha 令牌。

流程应该是:

  • 用户填写所需表格的信息。
  • 用户点击提交按钮(实现了盲目重新验证)。
  • 用户点击提交按钮后,Google recaptcha 服务应该会生成一个令牌。
  • 在请求中使用 recaptcha 令牌提交用户信息。
  • 在后端,验证重新验证码令牌(使用 Google 服务和客户端密码、客户端 ID)
  • 如果token有效,将表单信息保存到数据库。
  • 如果不是,则阻止该操作。