验证 g-captcha-response 参数

问题描述

我有这个表格,其中有一个已实现的 Google Captcha。我不明白为什么我可以使用相同的 g-recaptcha-response 提交多个 POST 请求,而没有它。是否打算以这种方式工作?

POST /dev-test/form.PHP HTTP/1.1
Host:.com
Content-Length: 606
Cache-Control: max-age=0
Sec-Ch-Ua: " Not;A Brand";v="99","Google Chrome";v="91","Chromium";v="91"
Sec-Ch-Ua-Mobile: ?0
Upgrade-Insecure-Requests: 1
Origin: https://sample.com
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/91.0.4472.114 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
sec-fetch-site: same-origin
sec-fetch-mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://sample.com/dev-test/form.PHP
Accept-Encoding: gzip,deflate
Accept-Language: en-US,en;q=0.9
Connection: close

client_id=077&first_name=captcha-bypass-2nd-attempt&last_name=bypass-captcha-2nd-attempt&consent=true&g-recaptcha-response=

解决方法

您可以向 Google 发送任意数量的请求……就像您可以向某个地址发送无限量的邮件包裹一样,没有任何机制可以阻止您向某个地址发送 HTTP 请求。

谷歌收到您的请求后,他们的服务器将处理您的请求并为其评分。作为开发者,您有责任从 google 获取该分数,以检查是否有合法用户尝试访问该网站。

您需要对应用程序的服务器端代码进行验证。

您可以在以下网址详细了解 google 希望您如何检查分数:https://developers.google.com/recaptcha/docs/verify

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...