Pular para o conteúdo principal
Está tendo problemas para obter o token?
Entre em contato com o suporte

AmazonTask | AWS WAF Captcha e Desafio

Resolvendo CAPTCHA e desafio no AWS WAF

Mais informações sobre o tema em nosso blog
Atenção!

Esta tarefa será executada usando nossos servidores proxy.

Possíveis variantes de captcha

Parâmetros da solicitação

Opção 1

type<string>required

AmazonTaskProxyless


websiteURL<string>required

O endereço da página principal em que o captcha é resolvido.


websiteKey<string>required

Pode ser encontrado no campo apiKey ao renderizar o captcha


captchaScript<string>required

Link para jsapi.js na página html, com o formato <Integration URL>/jsapi.js


cookieSolution<boolean>optional

Padrão false. Se você precisar de um cookie “aws-waf-token”, especifique um valor de true. Caso contrário, você receberá “captcha_voucher” e “existing_token” como resposta.

Opção 2

type<string>required

AmazonTaskProxyless


websiteURL<string>required

O endereço da página principal onde o captcha é resolvido.


challengeScript<string>required

Link para o challenge.js (veja a descrição abaixo)


captchaScript<string>optional

Link para captcha.js (talvez esteja faltando se você tiver apenas um desafio)


websiteKey<string>required

Uma string que pode ser obtida de uma página HTML com captcha ou com JavaScript executando window.gokuProps.key


context<string>required

Uma string que pode ser obtida de uma página HTML com captcha ou com JavaScript executando window.gokuProps.context


iv<string>required

Uma string que pode ser obtida de uma página HTML com captcha ou com JavaScript executando window.gokuProps.iv


cookieSolution<boolean>optional

Por padrão false. Se você precisar usar cookies "aws-waf-token", especifique o valor true. Caso contrário, você receberá em troca "captcha_voucher" e "existing_token".

Como obter os parâmetros websiteKey, context, iv e challengeScript

Ao acessar um site, você recebe uma resposta 405 e uma página HTML com um captcha. É dessa página que você pode obter todos os parâmetros:

Métodos de criação de tarefas

Opção 1

POST
https://api.capmonster.cloud/createTask

Solicitação

{
"clientKey": "API_KEY",
"task": {
"type": "AmazonTaskProxyless",
"websiteURL": "https://example.com/index.html",
"websiteKey": "h15hX7brbaRTR...Za1_1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
"captchaScript": "https://234324vgvc23.yejk.captcha-sdk.awswaf.com/234324vgvc23/jsapi.js",
"cookieSolution": true
}
}

Resposta

{
"errorId":0,
"taskId":407533072
}

Opção 2

POST
https://api.capmonster.cloud/createTask

Solicitação

{
"clientKey": "API_KEY",
"task": {
"type": "AmazonTaskProxyless",
"websiteURL": "https://example.com",
"challengeScript": "https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/challenge.js",
"captchaScript": "https://41bcdd4fb3cb.610cd090.us-east-1.captcha.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/captcha.js",
"websiteKey": "AQIDA...wZwdADFLWk7XOA==",
"context": "qoJYgnKsc...aormh/dYYK+Y=",
"iv": "CgAAXFFFFSAAABVk",
"cookieSolution": true
}
}

Resposta

{
"errorId":0,
"taskId":407533072
}

Obter o resultado da tarefa

Use o método getTaskResult para obter a solução do AmazonTask.

POST
https://api.capmonster.cloud/getTaskResult

Solicitação

{
"clientKey":"API_KEY",
"taskId": 407533072
}

Resposta

{
"errorId":0,
"status":"ready",
"solution": {
"cookies": {
"aws-waf-token": "10115f5b-ebd8-45c7-851e-cfd4f6a82e3e:EAoAua1QezAhAAAA:dp7sp2rXIRcnJcmpWOC1vIu+yq/A3EbR6b6K7c67P49usNF1f1bt/Af5pNcZ7TKZlW+jIZ7QfNs8zjjqiu8C9XQq50Pmv2DxUlyFtfPZkGwk0d27Ocznk18/IOOa49Rydx+/XkGA7xoGLNaUelzNX34PlyXjoOtL0rzYBxMAQy0D1tn+Q5u97kJBjs5Mytqu9tXPIPCTSn4dfXv5llSkv9pxBEnnhwz6HEdmdJMdfur+YRW1MgCX7i3L2Y0/CNL8kd8CEhTMzwyoXekrzBM="
},
"userAgent": "userAgentPlaceholder"
}
}

Usar biblioteca SDK

// https://github.com/ZennoLab/capmonstercloud-client-js

import { CapMonsterCloudClientFactory, ClientOptions, AmazonProxylessRequest } from '@zennolab_com/capmonstercloud-client';

document.addEventListener('DOMContentLoaded', async () => {
const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: '<your capmonster.cloud API key>' }));
console.log(await cmcClient.getBalance());

const amazonRequest = new AmazonProxylessRequest({
websiteURL: 'https://example.com',
websiteKey: 'websiteKey',
challengeScript: 'https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/challenge.js',
captchaScript: 'https://41bcdd4fb3cb.610cd090.us-east-1.captcha.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/captcha.js',
context: 'qoJYgnKsc...aormh/dYYK+Y=',
iv: 'CgAAXFFFFSAAABVk',
});

console.log(await cmcClient.Solve(amazonRequest));
});