"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Google के reCAPTCHA से क्लाउडफ्लेयर टर्नस्टाइल में माइग्रेट हो रहे हैं?

Google के reCAPTCHA से क्लाउडफ्लेयर टर्नस्टाइल में माइग्रेट हो रहे हैं?

2024-07-31 को प्रकाशित
ब्राउज़ करें:649

Migrating from Google

Google reCAPTCHA नई कीमत 1 अगस्त को लागू की जाएगी, जिसका अर्थ है कि आपके पास सस्ते विकल्प पर स्थानांतरित होने या यह सुनिश्चित करने के लिए कुछ दिन बचे हैं कि आपका बैंक खाता अच्छी तरह से वित्त पोषित है।

1,000 सत्यापनों के लिए 1 डॉलर से शुरू होने पर इसकी लागत बहुत अधिक होगी। Mailmeteor में, हम अपनी सेवाओं को बॉट्स से बचाने के लिए बड़े पैमाने पर reCAPTCHA का उपयोग करते हैं। Google के मूल्य परिवर्तन के साथ, हमने गणना की कि हम उनकी reCAPTCHA सेवा का उपयोग जारी रखने के लिए प्रति माह हजारों डॉलर का भुगतान करने वाले हैं।

कैप्चा क्या है?

कैप्चा वेब का एक अनिवार्य हिस्सा हैं। इसका उद्देश्य अच्छे नागरिकों को बुरे कलाकारों से अलग करना है। अनिवार्य रूप से, यह एक ऐसी सेवा है जो फ्रंटएंड पर काम करेगी और एक टोकन उत्पन्न करेगी जो बैकएंड पर प्रसारित होगी। बैकएंड फिर सत्यापित करता है कि टोकन वैध है, और, यदि हां, तो कार्रवाई करता है।

Google ने अपनी स्वयं की सेवा को बढ़ावा देने में बहुत अच्छा काम किया, लेकिन शुक्र है, कुछ विकल्प हैं:

  1. hCaptcha. हमने पहले इस पर विचार किया, लेकिन उनकी कीमत Google की नई कीमत के काफी समान है।
  2. क्लाउडफ्लेयर टर्नस्टाइल। हम क्लाउडफ्लेयर के बहुत बड़े प्रशंसक हैं, और निश्चित रूप से इस पर ध्यान दिया है। फिलहाल, यह एक निःशुल्क सेवा है।

आइए गहराई से जानें।

Google reCAPTCHA से दूर जा रहे हैं...

हमारा एक मुफ़्त टूल एआई ईमेल राइटर है। यह मूल रूप से एक HTML पेज है जो हमारे बैकएंड को अनुरोध भेजता है, जो फिर एक तृतीय-पक्ष AI समाधान बनाता है।

दुरुपयोग से बचाने के लिए, Google reCAPTCHA को पहले दिन से ही सक्षम कर दिया गया था। अब तक सत्यापन इस प्रकार किया गया (बैकएंड-साइड):

// 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.score 



यह काफी सरल है और यह इस बात का अनिवार्य हिस्सा है कि Google reCAPTCHA इतना लोकप्रिय क्यों था। पदचिह्न बहुत सीमित है और इसे लागू करना वास्तव में आसान है। सबसे जिज्ञासु लोगों के लिए, हमने इसे लागू करना वास्तव में आसान बनाने के लिए एक्सप्रेस-रीकैप्चा पैकेज का लाभ उठाया।

... क्लाउडफ्लेयर टर्नस्टाइल के लिए

टर्नस्टाइल में माइग्रेट करते समय, हमें एनपीएम पैकेज नहीं मिला, इसलिए हमें टोकन को संसाधित करने के लिए एक मिडलवेयर लिखना पड़ा। यह इस प्रकार दिखता है:

// 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 }

एक बार मिडलवेयर स्थापित हो जाने पर, हम इसे किसी भी अनुरोध पर लागू कर सकते हैं:

// index.js
app.post('/api/ai-email-writer', aiRateLimiter, turnstile, aiEmailWriter)

और फ़ंक्शन के अंदर जो अनुरोध का इलाज करता है, यह काफी हद तक वैसा ही है जैसा हमारे पास पहले था:

// 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' })
    }

    ...

निष्कर्ष

reCAPTCHA से टर्नस्टाइल पर माइग्रेट करना आसान है और इसमें कुछ घंटों से अधिक समय नहीं लगना चाहिए। यह काफी हद तक समान काम करता है और निश्चित रूप से एक ही समय में आपका बहुत सारा पैसा बचाएगा।

मैंने इस लेख में फ्रंटएंड को कवर नहीं किया है, क्योंकि हम एक अदृश्य विजेट का उपयोग करते हैं जिसे हमारे उपयोगकर्ता नहीं देख पाते हैं। लेकिन टर्नस्टाइल के दस्तावेज़ीकरण में व्यापक रूप से बताया गया है कि उनके इंटरैक्टिव विजेट का उपयोग कैसे किया जाए।

अंत करना!

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/frenchcooc/migrating-from-googles-recaptcha-to-cloudflare-turnstile-17lf?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3