O novo preço do Google reCAPTCHA será lançado em 1º de agosto, o que significa que você tem alguns dias restantes para migrar para uma alternativa mais barata ou garantir que sua conta bancária esteja bem financiada.
A partir de US$ 1 para 1.000 verificações, vai custar muito caro. Na Mailmeteor, usamos extensivamente o reCAPTCHA para proteger nossos serviços contra bots. Com a mudança de preços do Google, calculamos que estamos prestes a pagar milhares de dólares por mês para continuar usando o serviço reCAPTCHA.
CAPTCHAs são uma parte essencial da web. O objetivo é separar os bons cidadãos dos maus atores. Essencialmente, é um serviço que irá operar no frontend e gerar um token que será transmitido ao backend. O backend então verifica se o token é legítimo e, em caso afirmativo, executa a ação.
O Google fez um ótimo trabalho ao promover seu próprio serviço, mas, felizmente, existem algumas alternativas:
Vamos cavar.
Uma de nossas ferramentas gratuitas é um AI Email Writer. É basicamente uma página HTML que envia solicitações ao nosso back-end, que então envia para uma solução de IA de terceiros.
Para protegê-lo contra abusos, o Google reCAPTCHA foi ativado desde o primeiro dia. Veja como a verificação foi feita até agora (backend):
// index.js app.post('/api/email-ai-writer', recaptcha.middleware.verify, aiEmailWriter) // ai_email_writer.js async function aiEmailWriter(request, response) { try { // Recaptcha if (!request.recaptcha || request.recaptcha.error || !request.recaptcha.data) { console.warn('Recaptcha: verification failed.') return response.status(403).send({ error: true, message: 'Recaptcha: verification failed' }) } else if (request.recaptcha.data.action !== 'aiemailwriter') { console.warn('Recaptcha: bad action name') return response.status(403).send({ error: true, message: 'Recaptcha: bad action name' }) } else if (request.recaptcha.data.scoreIsso é bastante simples e é uma parte essencial do motivo pelo qual o Google reCAPTCHA se tornou tão popular. A pegada é muito limitada e é muito fácil de implementar. Para os mais curiosos, aproveitamos o pacote express-recaptcha para torná-lo realmente fácil de implementar.
... para a catraca Cloudflare
Ao migrar para o Turnstile, não conseguimos encontrar um pacote NPM, então tivemos que escrever um middleware para processar o token. Veja como fica:
// middlewares/turnstile.js const turnstile = async (request, response, next) => { try { // Turnstile injects a token in "cf-turnstile-response". const token = request.query['cf-turnstile-response'] const ip = request.header('CF-Connecting-IP') if (!token) { throw new Error('Missing CloudFlare Turnstile Token') } // Validate the token by calling the // "/siteverify" API endpoint. const formData = new FormData() formData.append('secret', process.env.CLOUDFLARE_TURNSTILE_SECRET_KEY) formData.append('response', token) if (ip) formData.append('remoteip', ip) const url = 'https://challenges.cloudflare.com/turnstile/v0/siteverify' const result = await fetch(url, { body: formData, method: 'POST', }) // Process the verification outcome const outcome = await result.json() if (!outcome.success) { throw new Error('CloudFlare Turnstile declined the token') } request.turnstile = outcome // If authentified, go to next middleware next() } catch (err) { console.error(err) return response.status(403).send('Forbidden') } } export { turnstile }Assim que o middleware estiver instalado, podemos aplicá-lo a qualquer solicitação:
// index.js app.post('/api/ai-email-writer', aiRateLimiter, turnstile, aiEmailWriter)E dentro da função que trata a requisição, é bem parecido com o que tínhamos anteriormente:
// ai_email_writer.js async function aiEmailWriter(request, response) { try { // CloudFlare Turnstile protection if (!request.turnstile || request.turnstile.error) { console.warn('Recaptcha: verification failed.') return response.status(403).json({ error: true, message: 'Recaptcha: verification failed' }) } else if (request.turnstile.action !== 'aiemailwriter') { console.warn('Recaptcha: bad action name') return response.status(403).json({ error: true, message: 'Recaptcha: bad action name' }) } ...Conclusão
Migrar do reCAPTCHA para o Turnstile é simples e não deve levar mais do que algumas horas. Funciona de forma bastante semelhante e com certeza você economizará muito dinheiro ao mesmo tempo.
Não abordei o frontend neste artigo, porque usamos um widget invisível que nossos usuários não veem. Mas a documentação da Turnstile cobre extensivamente como usar seus widgets interativos.
Encerre o dia!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3