Blindfold

Safari कंटेंट ब्लॉकर क्या होता है? (और यह असल में कैसे काम करता है)

अगर आप iPhone पर विज्ञापन ब्लॉक करने का कोई तरीका ढूंढते रहे हैं, तो आप शायद “कंटेंट ब्लॉकर” शब्द से टकराए होंगे बिना यह साफ़ समझे कि यह असल में है क्या। यह आपके Mac पर चलने वाले ब्राउज़र एक्सटेंशन जैसी चीज़ नहीं है, और यह फ़र्क़ ज़्यादातर जानकारी देने वाली जगहों के बताने से कहीं ज़्यादा मायने रखता है।

Safari कंटेंट ब्लॉकर एक छोटा ऐप एक्सटेंशन होता है जो Safari को नियमों की एक लिस्ट देता है: कौन-सी नेटवर्क रिक्वेस्ट ब्लॉक करनी हैं और कौन-से पेज एलिमेंट छुपाने हैं। Safari उस लिस्ट को पढ़ता है, कंपाइल करता है, और खुद लागू करता है। जिस एक्सटेंशन ने ये नियम भेजे, वह आपके ब्राउज़िंग ट्रैफ़िक को कभी नहीं छूता। यही एक डिज़ाइन फ़ैसला है जिसकी वजह से iOS पर कंटेंट ब्लॉकर सिर्फ़ “ऐड ब्लॉकर ऐप्स” न होकर अपनी ही अलग कैटेगरी हैं।

एक कंटेंट ब्लॉकर असल में कैसे काम करता है

Apple ने iOS 9 में SFContentBlockerManager API के ज़रिए कंटेंट ब्लॉकर पेश किए, खासतौर पर ताकि Safari कंटेंट ब्लॉक कर सके बिना किसी थर्ड-पार्टी को यह देखने की खिड़की दिए कि आप क्या ब्राउज़ करते हैं।

तरीका कुछ यूं है। कोई कंटेंट ब्लॉकर एक्सटेंशन एक JSON फ़ाइल भेजता है, नियम ऑब्जेक्ट्स की एक फ़्लैट ऐरे। हर नियम में एक ट्रिगर होता है (मिलाने के लिए एक URL पैटर्न) और एक एक्शन (रिक्वेस्ट ब्लॉक करना, किसी CSS सिलेक्टर से एलिमेंट छुपाना, या उससे कुकीज़ हटाना)। जब आप एक्सटेंशन ऑन करते हैं, तो Safari उस JSON को लोड करता है, इसे एक असरदार इंटरनल फ़ॉर्मेट में कंपाइल करता है, और कंपाइल की गई वर्ज़न स्टोर करता है। इसके बाद, Safari हर पेज लोड करते समय, पेज की अपनी स्क्रिप्ट्स चलने से पहले ही, इन नियमों को नैटिवली लागू करता है।

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

यही वजह है कि कंटेंट ब्लॉकर के नियमों की संख्या पर एक पक्की ऊपरी सीमा होती है। iOS 15 से, हर कंटेंट ब्लॉकर एक्सटेंशन ज़्यादा से ज़्यादा 150,000 कंपाइल किए गए नियम रख सकता है। URL और CSS पैटर्न के लिए यह एक अच्छा-खासा बजट है, और इसी वजह से जिन ऐप्स को एक एक्सटेंशन से ज़्यादा कवरेज चाहिए, Blindfold समेत, वे एक विशाल एक्सटेंशन के बजाय कई कंटेंट ब्लॉकर एक्सटेंशन भेजते हैं।

यह ब्राउज़र एक्सटेंशन वाले ऐड ब्लॉकर से अलग क्यों है

डेस्कटॉप ब्राउज़र पर, कोई ऐड ब्लॉकर एक्सटेंशन एक छोटा प्रोग्राम होता है जो पेज के साथ-साथ चलता है: यह DOM पढ़ता है, नेटवर्क रिक्वेस्ट को होते हुए देखता है, और पेज लोड होना शुरू होने के बाद चीज़ों को बदल देता है या हटा देता है। यह ताकतवर है, और इसी वजह से डेस्कटॉप ऐड ब्लॉकर ऐसी चालाक, डायनामिक चीज़ें कर सकते हैं जो Safari कंटेंट ब्लॉकर नहीं कर सकता, जैसे पेज कंटेंट जांचना और जो मिले उसके आधार पर फ़ैसला लेना।

Safari कंटेंट ब्लॉकर यह नहीं कर सकता। यह एक स्टैटिक नियम फ़ाइल थमाकर एक तरफ़ हट जाता है। इसके पास लाइव पेज में कोई दृश्यता नहीं होती और यह रेंडर होते समय कोई फ़ैसला नहीं ले सकता। हर नियम पहले से तय करना पड़ता है और एक पैटर्न के तौर पर लिखना पड़ता है, न कि ऐसे लॉजिक के तौर पर जो स्क्रीन पर मौजूद चीज़ पर प्रतिक्रिया दे।

यह एक असली ट्रेडऑफ़ है, और इस बारे में ईमानदार रहना ज़रूरी है। इसके बदले जो मिलता है वह है स्पीड और प्राइवेसी: आपकी ब्राउज़िंग की कोई भी चीज़ कभी एक्सटेंशन तक नहीं पहुंचती, हर पेज में जांचने के लिए कोई स्क्रिप्ट इंजेक्ट नहीं होती, और Safari पेज रेंडर होना शुरू होने से पहले ही नियम लागू कर देता है, बाद में सफ़ाई करने के बजाय। ज़्यादातर विज्ञापन और ट्रैकर ब्लॉकिंग के लिए, पहले से कंप्यूट किए गए नियम ज़्यादातर मामले कवर कर लेते हैं। आखिरी कुछ प्रतिशत में, वे विज्ञापन जो अभी किसी जाने-पहचाने पैटर्न से मेल नहीं खाते, वहां एक शुद्ध स्टैटिक लिस्ट की सीमाएं दिखने लगती हैं।

अपने iPhone पर कंटेंट ब्लॉकर कहां जांचें और मैनेज करें

आपने जो भी कंटेंट ब्लॉकर इंस्टॉल किया है वह एक ही जगह दिखता है: सेटिंग्स > Safari > एक्सटेंशन। (iOS 15 से पहले की वर्ज़न में, यह स्क्रीन सेटिंग्स > Safari > Content Blockers कहलाती थी।) हर एक का अपना ऑन/ऑफ़ स्विच है, और आप एक साथ कई एक्सटेंशन ऑन रख सकते हैं क्योंकि वे एक-दूसरे से टकराते नहीं, Safari बस उन सबके कंपाइल किए नियमों को मिला देता है।

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

Blindfold यहां कैसे फ़िट होता है

Blindfold तीन अलग कंटेंट ब्लॉकर भेजता है, Ads, Privacy और Annoyances, कुल मिलाकर 130,000 से ज़्यादा नियम। ये ऐड नेटवर्क्स, ट्रैकिंग स्क्रिप्ट्स, कुकी वॉल्स, और स्टिकी ओवरले कवर करते हैं, और वे उसी तरह चलते हैं जैसे हर कंटेंट ब्लॉकर चलता है: Safari द्वारा खुद कंपाइल और लागू किए हुए, आपकी ब्राउज़िंग में कोई दृश्यता के बिना।

ऊपर बताया गया स्टैटिक-लिस्ट ट्रेडऑफ़ असली है, इसलिए Blindfold एक और परत जोड़ता है। Apple का ऑन-डिवाइस मॉडल पेज लोड होने के बाद पेज एलिमेंट्स की समीक्षा करता है, वह एक पल जिसमें एक शुद्ध कंटेंट ब्लॉकर काम नहीं कर सकता, और जब उसे स्टैटिक लिस्ट्स से छूटी हुई कोई चीज़ मिलती है तो एक सटीक हाइडिंग रूल लिख देता है। यह विश्लेषण पूरी तरह आपके iPhone पर होता है। आप जो भी ब्राउज़ करते हैं वह कहीं नहीं भेजा जाता। यह जो भी नियम लिखता है वह ऐप में दिखता है, पूरी तरह साफ़, और आप इसे बाकी किसी भी नियम की तरह एडिट या डिलीट कर सकते हैं।

लिस्ट्स रोज़ाना ओवर-द-एयर रिफ्रेश होती हैं, तो नए नियम बिना किसी App Store अपडेट के आ जाते हैं। 30 दिनों का मुफ़्त ट्रायल आपको $7.99/वर्ष या एक बार का $19.99 लाइफटाइम भुगतान दिलाता है, दोनों में परिवार साझाकरण और कोई अकाउंट न होने की शर्त शामिल है। पूरा फ़ीचर सेट Blindfold के होमपेज पर देखें या इसे App Store से लें।

अगर आप iPhone पर विज्ञापन कम करने के अपने बाकी विकल्पों के मुकाबले कंटेंट ब्लॉकर को तौल रहे हैं, तो iPhone पर विज्ञापन ब्लॉक करने की पूरी गाइड बाकी मैदान कवर करती है: Safari की बिल्ट-इन सेटिंग्स, VPN-बेस्ड ब्लॉकर, और हर तरीका कहां मदद करता है या कहां कम पड़ जाता है।