Opa, é importante que tu saiba que qualquer pessoa pode usar as devtools no seu site para ver as requisições que ele faz e replicar elas usando o console ou um script
nem todo bot vai precisar acesar o frontend e simular cliques, um bot pode acessar diretamente seu servidor se ele não tiver nenhuma proteção
fetch("https://back-placarapida-production.up.railway.app/consulta/AAA1234", {
"headers": {
"accept": "application/json, text/plain, /",
"accept-language": "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7",
"cache-control": "no-cache",
"pragma": "no-cache",
"priority": "u=1, i",
"sec-ch-ua": ""Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"",
"sec-ch-ua-mobile": "?1",
"sec-ch-ua-platform": ""Android"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "cross-site",
"Referer": "https://placarapida.com.br/",
"Referrer-Policy": "strict-origin-when-cross-origin"
},
"body": null,
"method": "POST"
});
não sei como você chegou tão longe sem saber nisso, de qualquer forma ta de parabéns, mas agora melhora a tua segurança ai logo!
Vi que tu verifica a origem da requisição no seu servidor, mas isso não adianta nada, como tu pode ver no fetch ali em cima da pra definir o Referer que quiser no nodejs.
A lógica do captcha é justamente proteger a requisição com um tonken unico.
se tu ver o site do seu concorrente vai ver que o valor do x-captcha que impede que a requisição seja replicada
fetch("https://api.olhonocarro.com.br/api/v2/test-drive", {
"headers": {
"accept": "application/json, text/plain, /",
"accept-language": "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7",
"cache-control": "no-cache",
"content-type": "application/json",
"pragma": "no-cache",
"priority": "u=1, i",
"sec-ch-ua": ""Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"",
"sec-ch-ua-mobile": "?1",
"sec-ch-ua-platform": ""Android"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-site",
"x-captcha": "03AFcWeA7IE7UFOYzmG8IZz2CMEV765cV0eI2AaZW0Zubg4eb9uVvYvaxG3k2Lx58ShqoNwbQ0X19HgNp0OJ3cCsL42QZELbM26gV0A1Tcs-J7AJzf4XXX3bnYxrxsD4dcJqCFu7le_SVMcI8f4anV1-y10XKbItZwWbAox3B81BAXCw0Uf4EmEwZcQDVneYMZTTyCkzAEzdUpgehT-Td_zxJT6_kNLXgTG4dud1ru2rt0z4WAsxd-7eH8gdnJbcqSvAEeHCFQGJDts2hsggpbMIN90IULw3A4XeQmyD0uXH2utmvGL2SexhuU28TQcFgwn13q6kr1f_8nAZiJN34dYB6jp8fRUX54Z4VM7C1YRE8pdycFZCRlxlStkWztrpAS7BlK0ilYkE7pQaMu27sj0KeI9x9Ns-D9cqfhzyhYVVGvg1omK9bBjiF__Drfdoj_MgtFZu4nZkcD_zh7zF7R5EEddYbmf92lTjp7KzZMtDS_DfpOJDANGk513O4SY2DWxVb-beRmD6ZtB42lHH5Iqi8Gb9QTiEEXSKoX1hq3BawO0wvORsi77SlD7d7dx0ebKVE4FONdolE2QtiUoQtFYyfir30_0fnXHPDZ___6q7T_2qC0cLpwSX_e4q4IdDW02y77AuqRgYJs8VAQ4pyPDbTfhRkoFmG8msYKVEWbvyB4uKKQOPnS8Vzinz08-7oHcOr8XuZJo47uc3hDGBw0cxllsA3eOJgaWFdWExo3fS4CpuHeUSWdCti2pCnyoo6pl1Ip5Zo65BJwvb47LLGf9PewNPSJbSEAD2sOC5iJfkon25UAOSOglIMXcNh9gsYkjPWK7QjbLbA5KJHZDhRMikLr3pz_6uteNEvYLvZvejvmsPJiLFDs4x2XPYHszEBJ1Nmi11bdLFiy48aoavdcPhmgHnYeE8EhKhTv2SDW2qNu_WRQgXTbtdNSlR60PSvPQFPUum7OZYHF",
"Referer": "https://www.olhonocarro.com.br/",
"Referrer-Policy": "strict-origin-when-cross-origin"
},
"body": "{"keys":{"plate":"AAA1234"},"userCity":"São Paulo do sul"}",
"method": "POST"
});