【问题标题】:prevent submission of contact form to .net core web api阻止向 .net core web api 提交联系表单
【发布时间】:2018-05-17 09:41:17
【问题描述】:
我创建了一个网站,其中包含一个向我发送电子邮件的联系表单,我想要实现的操作是,当任何用户(不必登录)提交该联系表单时,防止那个表格再提交一段时间,这是为了防止垃圾邮件。
我一直在浏览 JWT 令牌,并考虑在用户提交该表单后使用令牌进行验证,但我不知道这是否是一个可能的解决方案,我想知道是否有另一种方法。
我将 C# Web Api 用于我的后端,并在我的客户端应用程序中使用 Angular 5。
【问题讨论】:
标签:
c#
asp.net-core
jwt
asp.net-core-webapi
【解决方案1】:
我认为你应该使用Google recapcha。
因为您在前端开发中提到了 Angular 5。您可以使用此ngx-recaptcha 在客户端生成验证码,并在后端验证生成的 recapcha 令牌。
流程应该是:
- 用户将信息填写到所需的表格中。
- 用户点击提交按钮(实施盲检)。
- 用户点击提交按钮后,应该有一个由 Google recaptcha 服务生成的令牌。
- 在请求中使用 recaptcha 令牌提交用户信息。
- 在后端,验证重新验证码令牌(使用带有客户端密码、客户端 ID 的 Google 服务)
- 如果令牌有效,则将表单信息保存到数据库。
- 如果没有,请阻止该操作。