Google recaptcha 第二次未在服务器端验证

GGi*_*Gio 3 php recaptcha

我有一个包含多个字段和 recaptcha 的表单。如果单击提交按钮时其中一个字段无效且 recaptcha 有效,则它会提交表单但会验证这些字段,并在失败时向用户返回错误消息。

在这个阶段,recaptcha 仍然在前端进行检查和验证。如果用户修复了出现错误消息的字段上的问题并重新提交表单,则来自 recaptcha 的响应是错误的,因此未经过验证。

在此处输入图片说明

输入有效电子邮件后,我得到以下信息:

在此处输入图片说明

我检查验证码的函数是这样的:

在此处输入图片说明

如果为 false,则会导致显示在上面的屏幕截图中的错误消息。

cee*_*yoz 5

recaptcha 验证只有一次好。

您有几种可能的方法:

  • 保存用户已成功完成验证码并且不需要它第二次通过验证的会话变量。成功提交时一定要清除变量,否则攻击者可以解决一次并提交一百万次。
  • 重新显示验证码(使用grecaptcha.render电话)并要求他们在表单提交失败时再次填写。
  • 在所有其他字段首先验证之前,不要验证验证码。