फ़ाइल की प्राइवेसी के लिए "यह आपके ब्राउज़र में चलता है" असल में क्यों मायने रखता है
"कुछ भी अपलोड नहीं होता" कोई मार्केटिंग वाला जुमला नहीं, बल्कि एक ख़ास, जाँचा जा सकने वाला तकनीकी दावा है। यहाँ जानें कि इसका असल मतलब क्या है, यह कैसे काम करता है, और आप ख़ुद इसे कैसे जाँच सकते हैं।
· पढ़ने में 4 मिनट
एक ख़ास, जाँचा जा सकने वाला दावा — कोई नारा नहीं
ज़्यादातर ऑनलाइन फ़ाइल टूल एक ही तरीक़े से काम करते हैं: आपकी फ़ाइल कहीं किसी सर्वर पर अपलोड होती है, वहाँ प्रोसेस होती है, और नतीजा आपको वापस भेज दिया जाता है — इसका मतलब है कि किसी न किसी पल पर, आपकी पूरी फ़ाइल किसी ऐसे कंप्यूटर पर बैठी होती है जिसे आप न नियंत्रित करते हैं और न ही जिसके बारे में कुछ भी सत्यापित कर सकते हैं। "पूरी तरह आपके ब्राउज़र में चलता है" एक वाक़ई अलग आर्किटेक्चर बताता है, न कि सिर्फ़ उसी बात को कहने का कोई ज़्यादा मीठा तरीक़ा: फ़ाइल कभी उस डिवाइस को छोड़ती ही नहीं जहाँ से उसकी शुरुआत हुई थी, क्योंकि कंप्रेशन, कन्वर्ज़न या एडिटिंग का असली काम ब्राउज़र की अपनी बिल्ट-इन क्षमताओं का इस्तेमाल करके होता है, न कि किसी दूर बैठे सर्वर को सौंपकर। यह एक ख़ास, तकनीकी रूप से सत्यापित किया जा सकने वाला दावा है, न कि कोई धुँधला वादा, और यह समझना वाक़ई ज़रूरी है कि इसे सच क्या बनाता है, क्योंकि "हम इसे अपलोड नहीं करते" और "हम इसे अपलोड कर ही नहीं सकते क्योंकि कोड में अपलोड का कोई क़दम है ही नहीं" के बीच का फ़र्क़ ही किसी पॉलिसी और किसी आर्किटेक्चर के बीच का पूरा फ़र्क़ है।
जो काम पहले कोई सर्वर करता था, वह ब्राउज़र असल में कैसे करता है
आधुनिक ब्राउज़र कई ऐसी क्षमताएँ देते हैं जो बिना कभी सर्वर की ज़रूरत के असली, बड़े पैमाने की फ़ाइल प्रोसेसिंग करने के लिए काफ़ी दमदार हैं: Canvas API इमेज डेटा को सीधे डीकोड, बदल और दोबारा एनकोड कर सकती है — रीसाइज़, क्रॉप, एडजस्ट, रीकंप्रेस — यह सब सिर्फ़ आपकी अपनी डिवाइस पर चल रहे JavaScript से। WebAssembly वाक़ई जटिल प्रोसेसिंग लाइब्रेरी को, जिनमें परफ़ॉर्मेंस के लिए मूल रूप से C या Rust जैसी भाषाओं में लिखे गए कोडेक और फ़ॉर्मेट हैंडलर भी शामिल हैं, ब्राउज़र के अंदर नैटिव कोड के क़रीब स्पीड पर चलने देती है, और यही वह चीज़ है जो ब्राउज़र-आधारित PDF मैनिपुलेशन और कुछ इमेज व ऑडियो कोडेक को दर्दनाक रूप से धीमे होने की बजाय व्यावहारिक बनाती है। Web Workers उस प्रोसेसिंग को पेज से अलग एक थ्रेड पर चलाते हैं, और यही वजह है कि कोई भारी ऑपरेशन — जैसे इमेज के किसी बड़े बैच को कंप्रेस करना — काम करते समय इंटरफ़ेस को जमा नहीं देता। इनमें से कोई भी टेक्नोलॉजी अजीबोग़रीब या प्रयोगात्मक नहीं है; ये स्टैंडर्ड, व्यापक रूप से सपोर्टेड ब्राउज़र फ़ीचर हैं, और यही ठीक वह चीज़ है जो बिना सर्वर के वाक़ई सक्षम फ़ाइल टूल बनाना किसी समझौते की बजाय लगातार ज़्यादा व्यावहारिक बनाती जा रही है।
यह असल में किस चीज़ की गारंटी देता है, और इस पर भरोसा करने की बजाय आप ख़ुद इसे कैसे जाँचें
ख़ास गारंटी संकरी है लेकिन असली है: टूल का काम करते समय आपकी फ़ाइल के बाइट्स कभी नेटवर्क पर कहीं ट्रांसमिट नहीं होते। यह किसी भरोसे पर मान लेने वाली बात नहीं है — इसे किसी भी ब्राउज़र के डेवलपर टूल्स में मौजूद Network टैब से सीधे देखा जा सकता है, जो किसी पेज द्वारा की गई हर रिक्वेस्ट दिखाता है; किसी वाक़ई ब्राउज़र-आधारित टूल से फ़ाइल गुज़ारते हुए उस पैनल को देखने पर फ़ाइल का कोई अपलोड होता नहीं दिखेगा, क्योंकि वाक़ई ऐसा कुछ है ही नहीं। इससे भी ज़्यादा सीधी जाँच है टूल के पेज के पूरी तरह लोड हो जाने के बाद इंटरनेट से पूरी तरह डिसकनेक्ट हो जाना, और यह पुष्टि करना कि टूल अब भी काम कर रहा है — कोई सर्वर पर निर्भर टूल बिना कनेक्शन के तुरंत फ़ेल हो जाता है, जबकि कोई वाक़ई ब्राउज़र-आधारित टूल काम करता रहता है, क्योंकि उसे प्रोसेसिंग के क़दम के लिए शुरू से ही नेटवर्क की ज़रूरत थी ही नहीं।
यह साफ़ करना ज़रूरी है कि इसमें क्या शामिल है और क्या नहीं: यह ख़ास तौर पर फ़ाइल के कंटेंट को लेकर एक गारंटी है, न कि यह एक व्यापक दावा कि पेज पर वाक़ई किसी भी तरह की कोई नेटवर्क गतिविधि कभी होती ही नहीं — पेज ख़ुद लोड होना, उसकी स्क्रिप्ट, और कोई भी विज्ञापन या एनालिटिक्स — ये सब अलग नेटवर्क गतिविधि है, जो इस बारे में किसी साइट की प्राइवेसी पॉलिसी जो भी कहती है उससे तय होती है, और यह उस ख़ास दावे से अलग है कि जिस फ़ाइल को आप प्रोसेस कर रहे हैं वह उस ट्रैफ़िक का हिस्सा नहीं है।
कुछ टूल ईमानदारी से इस तरह क्यों काम नहीं कर सकते, और इस फ़र्क़ को कैसे संभाला जाना चाहिए
हर उपयोगी फ़ाइल ऑपरेशन असल में पूरी तरह किसी ब्राउज़र के अंदर नहीं चल सकता। बेहद बड़ी फ़ाइलें उस मेमोरी की सीमा पार कर सकती हैं जो किसी ब्राउज़र टैब के लिए आरामदेह हो, कुछ ऑपरेशन ऐसे सर्वर-साइड इन्फ़्रास्ट्रक्चर या डेटा पर निर्भर होते हैं जिन्हें वाक़ई क्लाइंट-साइड दोहराया नहीं जा सकता, और कुछ प्रोसेसिंग इतनी भारी होती है कि उसे सर्वर हार्डवेयर पर सौंपना ही एकमात्र व्यावहारिक विकल्प रह जाता है। इस फ़र्क़ को संभालने का ईमानदार तरीक़ा यह नहीं है कि चुपचाप फ़ाइल को फिर भी अपलोड कर दिया जाए जबकि यह जताना जारी रखा जाए कि कुछ भी अपलोड नहीं होता — तरीक़ा यह है कि साफ़-साफ़ बताया जाए कि कोई ख़ास टूल असल में कौन सा मॉडल इस्तेमाल करता है, अपलोड-और-प्रोसेस-फिर-डिलीट या कभी-डिवाइस-नहीं-छोड़ती, ताकि यह फ़र्क़ सार्थक बना रहे, न कि दोनों को ढकने के लिए खींचा गया कोई मार्केटिंग जुमला बन जाए। जिस टूल को वाक़ई सर्वर प्रोसेसिंग की ज़रूरत हो, उसे यह साफ़ तौर पर कहना चाहिए और बताना चाहिए कि फ़ाइल के साथ बाद में क्या होता है, बजाय इसके कि "प्राइवेट" चुपचाप दो अलग-अलग चीज़ों का मतलब बनता चला जाए, इस पर निर्भर करते हुए कि उस वक़्त आपके सामने कौन सा टूल है।