1 पॉइंट द्वारा GN⁺ 21 일 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Mozilla के Add-ons API का उपयोग कर 84,000 से अधिक Firefox एक्सटेंशनों को पूरी तरह एकत्र और इंस्टॉल करने का बड़े पैमाने का प्रयोग किया गया
  • स्क्रैपिंग के जरिए 84,235 अद्वितीय एक्सटेंशन हासिल किए गए, कुल आकार 49.3GB, और डेटासेट Hugging Face पर सार्वजनिक किया गया
  • इंस्टॉलेशन प्रक्रिया में phishing·spam·PUA (संभावित अवांछित ऐप्स) सहित कई तरह के दुर्भावनापूर्ण एक्सटेंशन बड़ी संख्या में पाए गए
  • अंततः 84,194 एक्सटेंशन इंस्टॉल करने में सफलता मिली, लेकिन ब्राउज़र व्यावहारिक रूप से उपयोग-अयोग्य पाया गया
  • इस प्रयोग को Firefox एक्सटेंशन इकोसिस्टम की स्केल, क्वालिटी और सुरक्षा समस्याओं को समग्र रूप से उजागर करने वाला मामला माना गया

सभी Firefox एक्सटेंशन इंस्टॉल करने का प्रयोग

  • Firefox के लिए 84,000 से अधिक एक्सटेंशनों को पूरी तरह एकत्र, विश्लेषित और इंस्टॉल करने का बड़े पैमाने का प्रयोग
  • Mozilla के सार्वजनिक Add-ons API के जरिए पूरे एक्सटेंशन सूची को स्क्रैप किया गया और वास्तविक इंस्टॉलेशन भी किया गया
  • डेटासेट Hugging Face पर सार्वजनिक है, इसलिए कोई भी उस तक पहुँच सकता है
  • कई प्रयासों के बाद 84,194 एक्सटेंशन इंस्टॉल करने में सफलता मिली, लेकिन ब्राउज़र व्यावहारिक रूप से उपयोग-अयोग्य हो गया
  • इस प्रयोग से एक्सटेंशन इकोसिस्टम का आकार, गुणवत्ता, दुर्भावनापूर्ण एक्सटेंशन, स्पैम, PUA (संभावित अवांछित ऐप्स) आदि सामने आए

Firefox एक्सटेंशन स्क्रैपिंग

  • Mozilla का addons-server API बिना authentication के सुलभ है, और search endpoint से एक्सटेंशन सूची को पेज के आधार पर देखा जा सकता है
  • डिफ़ॉल्ट sorting (recommended,users) से केवल लगभग 30,000 ही दिखे, इसलिए created, rating, hotness, updated जैसे कई sorting विकल्पों को मिलाकर छूटे हुए एक्सटेंशन जुटाए गए
  • exclude_addons पैरामीटर का उपयोग करके page 600 के बाद के एक्सटेंशन भी अतिरिक्त रूप से एकत्र किए गए
  • category-आधारित parallel requests से कुल 84,235 अद्वितीय एक्सटेंशन हासिल किए गए, औसत आकार 584.9KB, कुल आकार 49.3GB
  • अंतिम डेटासेट Hugging Face पर अपलोड कर सार्वजनिक किया गया
  • 11 अप्रैल 2026 के अपडेट में created__gte, created__lte filters का उपयोग कर सटीक और कुशल full scraping लागू किया गया

Firefox एक्सटेंशन विश्लेषण

  • सबसे बड़ा एक्सटेंशन dmitlichess (196.3MB) था, जिसमें 2000 से अधिक audio files शामिल थीं
    • शीर्ष 10 एक्सटेंशनों में अधिकतर AI models, Unity apps, image resources जैसे बड़े कंटेंट शामिल थे
  • सबसे छोटा एक्सटेंशन theTabs-saver (7.5KB) था, जिसमें कोई कोड नहीं था
  • सबसे कम rating वाला एक्सटेंशन Tab Stack for Firefox था
  • सबसे पुराना एक्सटेंशन Web Developer था
  • सबसे अधिक screenshots वाला एक्सटेंशन RDS Bar (54) था
  • सबसे अधिक permissions माँगने वाला एक्सटेंशन FalscheLaden (3,695 permission requests) था, उसके बाद Google Dark Theme (2,675)
  • सबसे अधिक एक्सटेंशन प्रकाशित करने वाला डेवलपर Dr. B (84 एक्सटेंशन) था, जिनमें अधिकांश में README था, लेकिन icon नहीं था
  • phishing और दुर्भावनापूर्ण एक्सटेंशन

    • डेटासेट में crypto wallet phishing एक्सटेंशन बड़ी संख्या में पाए गए
      • उदाहरण: “Іron Wаllеt” इंस्टॉल होने के 3 सेकंड बाद NocoDB से URL लेकर phishing page पर भेजता था
      • कुछ एक्सटेंशन seed phrase लेकर उसे सर्वर पर भेजते थे
    • रिपोर्ट करने के बाद अगले दिन Mozilla ने अधिकांश को हटा दिया
    • ऐसे मामले भी मिले जहाँ API key में write permissions थीं, और सीधे डेटा delete किया गया
  • SEO spam एक्सटेंशन

    • एक्सटेंशन पेज के “Homepage” लिंक का backlink के लिए दुरुपयोग किया गया
    • Typo Sniper, Tab Fortune Teller जैसे AI-generated एक्सटेंशन casino sites पर ले जाते थे
    • “Code Injector” प्रकार के कई एक्सटेंशन मौजूद थे, जिनमें समान code structure और random domains का उपयोग हुआ
    • अधिकांश 2025 में बनाए गए पाए गए
  • PUA (संभावित अवांछित ऐप) एक्सटेंशन

    • “Custom Web Search” पैटर्न वाले लगभग 20 एक्सटेंशन, कुल 7 लाख से अधिक users
    • सभी में समान structure और domains थे, और “Innover Online Group Ltd” दर्ज था
    • Mozilla ने उनमें से कुछ को (115,000 users वाले) disable किया
    • Yahoo affiliate code safeplexsearch का उपयोग किया गया, और Firefox-विशिष्ट version भी मौजूद था
    • समान कंपनी Atom Apps ने भी इसी तरीके से एक्सटेंशन वितरित किए, कुल 2.2 लाख दैनिक users के साथ
  • आँकड़ों का सारांश

    • 34.3% एक्सटेंशनों के दैनिक users 0 थे
      • 10 या अधिक users: 25.1%, 100 या अधिक: 10.6%, 1,000 या अधिक: 3.2%, 10,000 या अधिक: 0.7%
    • 76.7% open source थे (SPDX license के आधार पर)
    • 23% वे एक्सटेंशन थे जो लेख लिखे जाने के बाद बनाए गए
      • उनमें से 19% में users, reviews, icons, downloads—कुछ भी नहीं था
    • 2.4% paid extensions थे, जिनमें से 38.1% open source थे

सभी एक्सटेंशन इंस्टॉल करने की कोशिश

  • हर एक्सटेंशन की .xpi फ़ाइल को profile folder में GUID नाम से सहेजने के बाद extensions.json संशोधित किया गया
  • addonStartup.json.lz4 हटाकर और extensions.json में छेड़छाड़ कर auto-enable किया गया
  • प्रयास 0: 65,335 (Windows VM)

    • Enterprise Policy तरीके से इंस्टॉल करने की कोशिश की गई, लेकिन memory की कमी और system freeze हुआ
  • प्रयास 1: लगभग 1,000

    • सीधे डाउनलोड कर manually रखा गया, इंस्टॉलेशन सफल रहा
    • कुछ एक्सटेंशनों ने सारे text को एक खास string में बदल दिया
    • कई security extensions के कारण domain blocking और warning pop-ups बार-बार आए
  • प्रयास 2: 65,335

    • addonStartup.json.lz4 हटाना छूट गया, इसलिए वास्तव में केवल लगभग 1,000 ही activate हुए
    • about:addons देखते समय Firefox freeze हो गया और दोबारा शुरू नहीं हुआ
  • प्रयास 3: 65,335 (Mac)

    • parallel download के दौरान गति धीमी हुई, कुल 6 घंटे लगे
    • Firefox चलाने पर कोई response नहीं, extensions.json का आकार 144MB
    • disk write 400GB से अधिक हुआ
  • प्रयास 4~10: 1,000~6,000

    • 3,000 तक webpages लोड हो पा रहे थे
    • 4,000 के बाद सभी sites block, और 6,000 पर केवल about:addons ही लोड हो पाया
  • प्रयास 11: 84,194 (6 महीने बाद)

    • 16~24GB RAM वाले वातावरण में virtual machine (VM) का उपयोग
    • डाउनलोड में 1 घंटा 43 मिनट लगे, कुछ एक्सटेंशनों को Defender ने detect किया
    • Firefox शुरू होने पर extensions.json 189MB तक बढ़ गया, और 39 मिनट बाद force close करना पड़ा
    • इसके बाद enable.js चलाकर दोबारा प्रयास किया गया
    • Launch 1~3 परिणाम

      • Launch 1: rendering के बिना 39 मिनट इंतज़ार के बाद रोक दिया गया
      • Launch 2: ब्राउज़र दिखने के बाद 3 मिनट के भीतर crash
      • Launch 3: लंबे इंतज़ार के बाद स्थिर होने में सफलता, और 84,194 एक्सटेंशन लोड होने की पुष्टि

सभी एक्सटेंशन उपयोग परीक्षण

  • about:addons

    • settings page लोड नहीं हुआ, index page 6 घंटे बाद पूरी तरह लोड हुआ
    • memory usage 27~37 GiB बना रहा
    • icons नहीं दिखे, response delay बहुत गंभीर था
  • about:support

    • कुल 84,205 एक्सटेंशन दिखे, लेकिन इसमें built-in extensions भी शामिल थे
    • वास्तव में इंस्टॉल किए गए external extensions 84,194 पाए गए
  • about:preferences

    • कई New Tab विकल्प मौजूद थे, जिनसे conflicts और crashes हुए
  • New Tab

    • केवल Firefox Home ठीक से लोड हुआ, बाकी सभी एक्सटेंशन विफल रहे
  • moz-extension

    • buyPal एक्सटेंशन ने अपने आप tab replace कर दिया और वही अकेला सही से लोड हुआ
    • इसके बाद Firefox फिर crash हो गया
  • example.com

    • 24 घंटे इंतज़ार के बाद भी page लोड नहीं हुआ, अनुमान है कि कई blocking extensions मौजूद थे
  • about:telemetry

    • Environment Data पर क्लिक करते ही तुरंत crash

उपयोगिता मूल्यांकन

  • असंभव
  • 84,000 एक्सटेंशन इंस्टॉल होने की स्थिति में Firefox व्यावहारिक रूप से काम नहीं करता

आगे की जाँच के सुझाव

  • about:addons के 6 घंटे load होने के कारण और example.com के न लोड होने के कारण का विश्लेषण
  • .xpi को सपोर्ट करने वाले Kagi Orion, GNOME Web जैसे अन्य ब्राउज़रों पर प्रयोग
  • themes (5 लाख से अधिक) या सभी user scripts और styles इंस्टॉल करने के प्रयोग
  • स्केल के कारण पूरे Chrome Web Store के सभी एक्सटेंशन इंस्टॉल करना असंभव

फुटनोट सारांश

  • कुल 8 एक्सटेंशन स्क्रैपिंग में छूट गए थे या हटा दिए गए थे
  • सितंबर 2025 में लिखे गए शुरुआती संस्करण के बाद अप्रैल 2026 में आँकड़े अपडेट किए गए
  • “Foreshadowing” का उल्लेख साहित्यिक पूर्वसंकेत उपकरण के रूप में किया गया

1 टिप्पणियां

 
GN⁺ 21 일 전
Hacker News की राय
  • "Middle Finger Emoji Sticker" पुरस्कार मिला था
    उस प्रक्रिया का छोटा सा सार ब्लॉग पर पोस्ट किया था
    मूल लेख यहाँ देखा जा सकता है

  • पुराने Internet Explorer toolbar wars याद आ गए
    याद है कि हर इंटरनेट कैफ़े में Ask.com, Google, Yahoo, और बाद में Bing के कम से कम दो-दो toolbar इंस्टॉल रहते थे

  • यह इतना समय क्यों ले रहा था, इसे लेकर मैंने पड़ताल की
    13 साल पहले extensions.json नहीं बल्कि extensions.sqlite था
    अब संरचना ऐसी है कि हर 20ms पर पूरी फ़ाइल serialize करके फिर से लिखी जाती है, इसलिए 15 extensions तक तो ठीक है लेकिन 84,194 पर समस्या होती है
    सोच रहा हूँ यह debounce value कैसे तय की गई थी। कौन-सा extension प्रति सेकंड कई बार extensions.json लिखता होगा, यह भी सवाल है

  • असली pages में से एक भी ठीक से नहीं खुलता, लेकिन लेख खुद पढ़ने में सचमुच बहुत मज़ेदार था
    “crash reporting चालू किया” वाला हिस्सा पढ़कर मैं देर तक हँसता रहा। Mozilla टीम के नज़रिए से यह किसी डरावनी कहानी जैसा होगा

    • Firefox की crash report सार्वजनिक होती है
      लेकिन लेखक ने जो अपलोड की थी, वह मुझे नहीं मिली। इसे crash-stats.mozilla.org पर देखा जा सकता है
      अगर profile बची हुई है, तो इस गाइड से crash ID ढूँढी जा सकती है
  • लेख सचमुच अजीब भी है और शानदार भी
    खासकर यह बात प्रभावशाली लगी कि about: pages में से कम से कम एक में performance bug मिला। इसकी आगे जाँच ज़रूर होनी चाहिए

  • extension सूची को sitemap के रूप में भी देखा जा सकता है
    Firefox Add-ons sitemap,
    Chrome Web Store sitemap,
    और Edge sitemap भी देखे जा सकते हैं

  • वीडियो इतना मज़ेदार है कि हँसते-हँसते आँसू आ गए
    शायद कंप्यूटर के बारे में लगभग कुछ भी न जानने वाले बुज़ुर्ग लोगों की web surfing कुछ ऐसी ही लगती होगी। काश कोई Chrome में भी यह करके दिखाए

    • यह एहसास बहुत मज़ेदार था कि लेखक 30 सेकंड तक जिस नकली extension button को लगातार दबा रहा था, वह असल में किसी extension का बनाया हुआ button था। और ऐसे तीन थे
    • मुझे व्यक्तिगत रूप से सबसे मज़ेदार metal pipe sound effect लगा। जानना है वह किस extension ने डाला था
    • यह सच में एक legendary bug report बनने वाला है
    • अगर किसी को कुछ भी समझ न हो और वह हर popup पर “हाँ/सहमत/ठीक है” दबाता जाए, तो नतीजा ऐसा ही होगा
    • वीडियो कहाँ है, समझ नहीं आया। मैंने scroll किया लेकिन सिर्फ़ स्थिर तस्वीरें ही दिखीं
  • “यह service mesh हमारे काम के लिए overengineered है, लेकिन broker 84,205 microservices के लिए बहुत धीमा है”
    यह कभी न खत्म होने वाला तनाव बहुत परिचित लगता है

  • उस legendary NPM package की याद आ गई जो हर NPM package पर depend करता था
    यह लेख देखें, सच में बहुत मज़ेदार है

  • “इससे लगभग सारे extensions इंस्टॉल कर लेने के बाद, पहले जो कुछ किया था वह सब बेवकूफ़ी जैसा लगता है” — इस बात से गहरी सहमति है
    मैंने भी वैसी ही निरर्थकता महसूस की थी