如何通过Java脚本检测re-Captcha站点密钥是否有效?
我正在尝试通过Java脚本检测Google re-Captcha的"无效站点密钥"错误,以便可以将该错误报告给服务器进行进一步处理。我正在使用显式呈现模式并调用API函数grecaptcha.render('iframeid', {'site-key':'xxx'});
,尽管该函数不会返回任何错误响应或引发异常,即使它加载了以下内容:
我也不能简单地读取加载的错误文本,因为它加载在不同域上的IFRAME中。有没有办法通过Java脚本或服务器端自动检测无效的站点密钥?
编辑 最终的解决方案是使用phantomjs加载测试页面并解析reCAPTCHA的html
解决方案
Google不提供验证站点密钥的方法,您也不能通过JS破解/访问reCaptcha html代码,因为reCapthca位于iFrame中,而Frame的代码不能通过编程方式访问客户端。
推送新网站时忘记更新仪表板中的允许域是常见错误。
因为您管理多个域,所以我建议您对您使用的所有域使用一个站点密钥。为此,请使用secure token。
黑客攻击
另一种选择可能是您开发一个脚本,用于访问感兴趣的站点、创建加载的reCaptcha的屏幕截图/快照、应用OCR(例如。使用this),并在站点密钥有效或无效时返回结果。
相关文章