Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Redis

Cloudflare Workers और Upstash Redis के साथ एज IP व्हाइटलिस्टिंग और ब्लॉकिंग으로 साइट सुरक्षित करें

अपनी वेबसाइट तक पहुंच को कुछ विशिष्ट IPs तक सीमित करना एक आम आवश्यकता है। इस पोस्ट में, मैं दिखाऊंगा कि एज कंप्यूटिंग का उपयोग करके IP Allow/Deny सूची कैसे लागू करें। पहले मुझे Cloudflare Workers का परिचय दें।

Cloudflare Workers

Cloudflare Workers हाल के वर्षों में काफी लोकप्रिय तकनीक है। यह 2017 में सार्वजनिक रूप से उपलब्ध हुआ और Cloudflare KV स्टोरेज 2019 में सार्वजनिक रूप से उपलब्ध हुआ।

Cloudflare Workers या KV स्टोरेज के गहरे विवरण में जाए बिना, मैं उन्हें संक्षेप में समझाऊंगा। Cloudflare Workers के साथ आप किसी भी HTTP अनुरोध को एज स्तर पर इंटरसेप्ट कर सकते हैं, अपने कोड स्निपेट्स निष्पादित कर सकते हैं और अनुरोध/प्रतिक्रिया में हेरफेर कर सकते हैं। साथ ही आप KV स्टोरेज का उपयोग करके एक डिक्शनरी बना/प्राप्त कर सकते हैं जो Cloudflare Workers के अंदर मूल रूप से उपलब्ध है। आप प्लेग्राउंड वातावरण को तुरंत आजमा सकते हैं, यह काफी सरल और 1-क्लिक टेस्ट वातावरण है।

Cloudflare KV स्टोरेज के अलावा, एक डेवलपर के रूप में आपको अधिक उन्नत डेटा संरचनाओं की आवश्यकता हो सकती है। साथ ही आप KV स्टोरेज को बाहर से एक्सेस करना चाह सकते हैं (जैसे बैकएंड या API या SDK क्लाइंट्स से)। इसलिए हाल ही में हमने Upstash के लिए REST API सक्षम किया है।

अब आप अपने Upstash Redis डेटाबेस तक पहुंच सकते हैं:

  • Cloudflare Workers में Upstash REST API
  • कमांड लाइन टर्मिनल में redis-cli
  • उस विशेष प्रोग्रामिंग भाषा में कोई भी Redis क्लाइंट

कुछ नमूना कोड स्निपेट्स और नमूना कमांड के लिए अपने डेटाबेस विवरण पृष्ठ में अपने connect बटन पर क्लिक करें।

Cloudflare Workers और Upstash Redis के साथ एज IP व्हाइटलिस्टिंग और ब्लॉकिंग으로 साइट सुरक्षित करें

आइए Cloudflare Workers और Upstash Redis REST API का उपयोग करके एक छोटा एप्लिकेशन बनाएं।

एप्लिकेशन

Redis को स्रोत के रूप में उपयोग करके Cloudflare Worker में IP Allow/Deny।

पूर्वापेक्षाएँ

नोट: Upstash डेटाबेस बनाते समय ग्लोबल डेटाबेस चुनें। ग्लोबल डेटाबेस एज फ़ंक्शंस से लेटेंसी कम करने के लिए डेटा को कई क्षेत्रों में दोहराता है।

आइए एक Cloudflare Worker बनाएं और अनुरोध को इंटरसेप्ट करें। जब आप एक वर्कर बनाते हैं तो यह स्वचालित रूप से नमूना कोड के साथ आता है।

कार्यान्वयन

आइए विज़िटर का IP पता प्राप्त करें:

async function handleRequest(request) {
  const ip = request.headers.get("cf-connecting-ip");
  return new Response(ip);
}

हेडर से विज़िटर का IP पता प्राप्त करना संभव है। अब हम जांचना चाहते हैं कि यह IP पता अनुमत सूची में है या नहीं। आइए एक ही REST API कॉल करें और अपने कोड में सुधार करें।

async function handleRequest(request) {
  const ip = request.headers.get("cf-connecting-ip");
  res = await fetch(
    "https://YOUR_DATABASE_ENDPOINT/sismember/allowed-set/" + ip + "?_token=YOUR_REST_API_TOKEN"
  );
  if ((await res.text()).includes("1")) {
    return new Response(ip + " is allowed.");
  }
  return new Response(ip + " is not allowed.");
}

अब हम अपने Upstash Redis सर्वर पर एक REST API कॉल करते हैं और जांचते हैं कि IP पता सूची में है या नहीं। यदि परिणाम में "1" है तो इसका मतलब है कि यह सूची में है, अन्यथा नहीं।

आप निम्न कमांड के साथ redis-cli का उपयोग करके Redis सेट को अपडेट कर सकते हैं:

sadd allowed-set $IP_ADDRESS

निष्कर्ष और भविष्य का कार्य

अब REST API का उपयोग करके अपने Redis सर्वर इंस्टेंस तक पहुंचना संभव है। हम REST API का उपयोग करके लगभग सभी कमांड का समर्थन कर रहे हैं। अधिक विवरण के लिए हमारा दस्तावेज़ीकरण देखें। Cloudflare KV स्टोरेज के साथ, आप केवल KV डिक्शनरी API तक सीमित हैं और थर्ड-पार्टी एप्लिकेशन से Cloudflare Workers KV तक पहुंचना आसान नहीं है। लेकिन Redis के बड़ी संख्या में अलग-अलग क्लाइंट SDKs और redis-cli हैं। साथ ही Upstash में आप REST API का उपयोग करके अपने Redis डेटाबेस तक पहुंच सकते हैं।

इस सरल एप्लिकेशन को Cloudflare Workers में एक प्रकार के सुरक्षा गार्ड तक विस्तारित किया जा सकता है। उपयोगकर्ता Redis डेटाबेस में कॉन्फ़िगरेशन मान बदल सकते हैं और Cloudflare Worker Redis से कॉन्फ़िगरेशन पढ़ सकता है।

  1. क्लाउडफ्लेयर वर्कर्स और सर्वरलेस रेडिस के साथ कस्टम वेटिंग रूम बनाएं - ट्रैफिक सर्ज को नियंत्रित करें क्लाउडफ्लेयर वर्कर्स और सर्वरलेस रेडिस के साथ कस्टम वेटिंग रूम बनाएं - ट्रैफिक सर्ज को नियंत्रित करें

    इस ब्लॉग पोस्ट में, हम आपकी वेबसाइट के लिए एक वेटिंग रूम पेज इम्प्लीमेंट करेंगे। क्यों? आपकी वेबसाइट पर बड़ी संख्या में विज़िटर आमतौर पर एक अच्छी बात है लेकिन हमेशा नहीं। अचानक उच्च ट्रैफिक आपके एप्लिकेशन को आसानी से अभिभूत कर सकता है जो आपकी सेवाओं को पूरी तरह से बाधित कर सकता है। वेटिंग रूम एक सम

  1. एज कैशिंग के साथ Redis में 5ms वैश्विक लेटेंसी प्राप्त करें एज कैशिंग के साथ Redis में 5ms वैश्विक लेटेंसी प्राप्त करें

    जब डेटाबेस और क्लाइंट एक ही क्षेत्र में हों तो Redis के साथ 1ms लेटेंसी प्राप्त करना आसान है। लेकिन यदि आप चाहते हैं कि क्लाइंट विश्व स्तर पर वितरित हों तो लेटेंसी 100ms से अधिक हो जाती है। हमने इस समस्या को दूर करने के लिए एज कैशिंग विकसित की है। एज कैशिंग एज कैशिंग के साथ, REST प्रतिक्रियाएं दुनि

  1. Cloudflare Workers के साथ एज पर Redis की शक्ति का उपयोग करें Cloudflare Workers के साथ एज पर Redis की शक्ति का उपयोग करें

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