是否可以通过http请求验证recaptcha? (阿迪达斯)

时间:2016-02-22 13:41:36

标签: javascript http request recaptcha

我试图通过HTTP POST请求将产品添加到我的购物车:

http://www.adidas.com/on/demandware.store/Sites-adidas-US-Site/en_US/Cart-MiniAddProduct?pid=S77417_630

它包含Cart-MiniAddProuct功能,产品ID = S77417,sizeId = _630。但该产品需要重新验证,我听说几乎不可能通过HTTP POST请求。我已经获得了recaptcha的site-datakey,但是我在url中的格式是错误的,或者我的方向错误。

以下是我一直在尝试的内容:

http://www.adidas.com/on/demandware.store/Sites-adidas-US-Site/en_US/Cart-MiniAddProduct?pid=S77417_630&Quantity=1&ajax=true?g-recaptcha-reponse=6LekiwgTAAAAAALUnAZQuJEvFG7O5z-gKGEjtz82

2 个答案:

答案 0 :(得分:2)

您无法绕过验证码验证。这与HTTP POST无关。如果服务器触发验证码质询,则必须由人员进行验证才能继续。

但是,假设原始应用程序默认情况下不会触发验证码,您可以创建一个独立的应用程序来重现将该项放入其中所需的步骤(浏览器和服务器之间的HTTP对话)。车。

这个过程很简单:

  1. 在浏览器中启动私人会话(没有历史记录,没有缓存,没有以前会话的密码)
  2. 在开发者工具中打开网络视图
  3. 转到网站,登录并添加产品
  4. 检查上一过程中的主要HTTP请求
  5. 创建一个脚本来重现它们,根据需要来回移动信息
  6. 注意:独立应用程序是指使用您选择的语言在浏览器外部运行的应用程序。也许某些浏览器或插件允许您执行一些也可以使用的宏录制。

    编辑:如果服务器触发验证码验证,那是因为它怀疑来自人的请求。通常这是因为它收到了来自您的会话(或IP)的无效请求,或者高频率的请求,或者它认为相关的任何其他标志,因为用户是匿名的或已记录的。

    干杯

答案 1 :(得分:1)

如果您已经拥有有效的验证码响应,则可以向服务器发送获取请求。但是,您的请求有两个问题: 1)参数不正确: 它应该是: http://www.adidas.com/on/demandware.store/Sites-adidas-US-Site/en_US/Cart-MiniAddProduct?pid=S77417_630&Quantity=1&ajax=true&g-recaptcha-reponse=6LekiwgTAAAAAALUnAZQuJEvFG7O5z-gKGEjtz82

更换第二个?与&

2)验证码响应不仅仅是公共站点密钥(你没想到它会那么简单吧)