【发布时间】:2015-06-07 09:24:56
【问题描述】:
如果我请求以下网址
http://www.google.com/recaptcha/api/noscript?k=MYPUBLICKEY
我会得到旧的无脚本版本的验证码,包含谷歌街道号码的图像,像这样
但是如果我对HtmlUnit 做同样的事情,我会得到一些伪造的图像版本,如下所示:
它一直在发生:来自浏览器的真实街道号码和来自HtmlUnit 的黑色扭曲文本。公钥是一样的。
Google 服务器如何区分浏览器和 HtmlUnit?
HtmlUnit 代码如下:
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_17);
final HtmlPage page = webClient.getPage("http://www.google.com/recaptcha/api/noscript?k=" + getPublicKey());
HtmlImage image = page.<HtmlImage>getFirstByXPath("//img");
ImageReader imageReader = image.getImageReader();
使用 Fiddler 可以观察到进程。
【问题讨论】:
-
很可能是 User-Agent http 标头。
标签: java captcha htmlunit impersonation