कैसे जाँचें कि आपकी फ़ाइलें अपलोड नहीं हो रहीं
इनमें से हर साइट कहती है कि वह प्राइवेट है। मैं इसे असल में वेरिफ़ाई कैसे करूँ?
सही धारणा से शुरू करें
किसी मार्केटिंग पेज पर लिखा प्राइवेसी का दावा सबूत नहीं है। न ताले का आइकन सबूत है, न कोई बैज, न प्राइवेसी पॉलिसी में लिखा कोई वाक्य — वे इरादा बताते हैं, जबकि आपको जानना है बर्ताव। अच्छी बात यह है कि बर्ताव देखा जा सकता है: हर ब्राउज़र में ऐसे टूल आते हैं जो ठीक-ठीक दिखाते हैं कि कोई पेज क्या भेज रहा है, और उन्हें पढ़ने के लिए डेवलपर होना ज़रूरी नहीं।
ये जाँचें इस साइट पर कीजिए। उस साइट पर भी कीजिए जो आप पहले इस्तेमाल कर रहे थे। मक़सद किसी दूसरे दावे पर भरोसा करना नहीं है; मक़सद यह है कि भरोसा करने की ज़रूरत ही न रहे।
जाँच एक: नेटवर्क पैनल पर नज़र रखें
- डेवलपर टूल खोलें। ज़्यादातर डेस्कटॉप ब्राउज़र में यह F12, या Ctrl+Shift+I, या Cmd+Option+I है।
- Network टैब चुनें और पक्का करें कि रिकॉर्डिंग चालू है।
- पेज रीलोड करें, फिर लिस्ट साफ़ कर दें ताकि आप खाली लॉग से शुरू करें।
- अपनी फ़ाइल चुनें और ऑपरेशन चलाएँ।
- साइज़ के हिसाब से सॉर्ट करें, या Method कॉलम में POST और PUT रिक्वेस्ट देखें।
आपको ऐसी कोई भी रिक्वेस्ट खोजनी है जिसका पेलोड आपकी फ़ाइल के साइज़ के आसपास हो, और ऐसी कोई भी रिक्वेस्ट जो उस साइट के अलावा किसी और होस्ट को जा रही हो जिस पर आप हैं। लोकल टूल अपने ही कोड की रिक्वेस्ट दिखाएगा — स्क्रिप्ट, स्टाइलशीट, WebAssembly मॉड्यूल, शायद कोई मॉडल फ़ाइल — और फिर काम चलने के दौरान कुछ नहीं। अपलोड करने वाला टूल उसी पल कई मेगाबाइट ढोती हुई एक रिक्वेस्ट दिखाएगा जब आप बटन दबाएँगे।
जाँच दो: नेटवर्क ही हटा दें
यह सबसे मज़बूत जाँच है, और इसके लिए किसी विशेषज्ञता की ज़रूरत नहीं। पेज सामान्य तरीके से लोड करें, टूल को एक बार इस्तेमाल कर लें ताकि उसे जो भी इंजन चाहिए वह कैश हो जाए, फिर कनेक्शन काट दें: एयरप्लेन मोड चालू करें, Wi-Fi बंद करें, या डेवलपर टूल में ऑफ़लाइन टॉगल इस्तेमाल करें। अब कोई फ़ाइल प्रोसेस करें।
अगर वह पूरी हो जाती है, तो प्रोसेसिंग आपकी मशीन के अलावा कहीं हो ही नहीं सकती थी। इसमें बहस की कोई गुंजाइश नहीं। अगर वह फ़ेल हो जाती है या अटक जाती है, तो पाइपलाइन में किसी चीज़ को सर्वर चाहिए था — जो जायज़ भी हो सकता है, जैसे कोई मॉडल फ़ाइल जो अभी कैश नहीं हुई थी, पर अब आपको पता है कि पूछना क्या है।
जाँच तीन: कंटेंट सिक्योरिटी पॉलिसी पढ़ें
कंटेंट सिक्योरिटी पॉलिसी एक हेडर है जो साइट भेजती है और ब्राउज़र लागू करता है। इसका connect-src डायरेक्टिव उन ठिकानों की सूची देता है जिनसे पेज को कनेक्शन खोलने की इजाज़त है। अगर connect-src सिर्फ़ साइट के अपने ऑरिजिन तक सीमित है, तो पेज का कोड चाहे कुछ भी करने की कोशिश करे, ब्राउज़र खुद कहीं और कुछ भेजने की कोशिश रोक देगा।
इसे पढ़ने के लिए Network टैब खोलें, डॉक्यूमेंट रिक्वेस्ट पर क्लिक करें — आम तौर पर सबसे पहली पंक्ति — और रिस्पॉन्स हेडर में Content-Security-Policy देखें। जिस पॉलिसी में connect-src 'self' हो और कोई बाहरी होस्ट न हो, वह एक ठोस, ब्राउज़र से लागू होने वाली पाबंदी है, कोई वादा नहीं।
हर जाँच क्या साबित करती है
| जाँच | यह क्या साबित करती है | यह किसे नहीं ढकती |
|---|---|---|
| नेटवर्क पैनल | इस सेशन के दौरान इस पेज ने क्या भेजा | कोई दूसरा कोड पाथ, साइट का कोई बाद वाला वर्ज़न, या आपके देखना बंद करने के बाद की गई रिक्वेस्ट |
| ऑफ़लाइन टेस्ट | प्रोसेसिंग खुद लोकल तौर पर चलती है | क्या कुछ कतार में रखकर दोबारा कनेक्ट होते ही भेजा जाता है |
| कंटेंट सिक्योरिटी पॉलिसी | ब्राउज़र कनेक्शन कहाँ-कहाँ होने देगा | पॉलिसी में जो कुछ भी इजाज़त है, साइट का अपना ऑरिजिन भी शामिल |
| सोर्स पढ़ना | भेजे गए कोड में क्या है | मेहनत; और साइट बदलने पर इसे दोबारा करना पड़ता है |
मिलकर ये मज़बूत हैं। अकेले-अकेले हर एक में एक झोल है, और जो आपसे कहे कि कोई एक जाँच मामला निपटा देती है, वह बात को हद से ज़्यादा सरल बना रहा है।
ऐसे संकेत कि टूल लोकल नहीं है
- ऐसा प्रोग्रेस बार जो आपके डिवाइस से बेपरवाह रफ़्तार से चले — तेज़ लैपटॉप और पुराने फ़ोन दोनों पर एक जैसा और एकदम स्मूद।
- ऐसा नतीजा जो उनके डोमेन पर किसी डाउनलोड URL के लिंक के रूप में मिले, न कि उस फ़ाइल के रूप में जो आपका ब्राउज़र पहले से रखे हुए है।
- यह संदेश कि कुछ घंटों बाद फ़ाइलें उनके सर्वर से हटा दी जाती हैं। यह वाक्य खुद कबूलनामा है कि फ़ाइलें वहाँ थीं।
- कोई कतार या रेट लिमिट। आपके अपने प्रोसेसर की कतार दूसरों के साथ साझा नहीं होती।
- नेटवर्क बंद होने पर टूल सिर्फ़ पहली छोटी फ़ाइल के लिए चले, फिर रुक जाए।
वेरिफ़िकेशन की सीमाएँ
वेरिफ़िकेशन आपको साइट के उसी वर्ज़न के बारे में बताता है जिसे आपने जाँचा, उसी दिन जिस दिन जाँचा। साइट कल बदल सकती है। इसीलिए सबसे मायने रखने वाली जाँचें ढाँचागत हैं: एक सख़्त कंटेंट सिक्योरिटी पॉलिसी और एक कामयाब ऑफ़लाइन टेस्ट इस बात के गुण हैं कि एप्लिकेशन बना कैसे है, किसी एक रिलीज़ के बारे में किए गए वादे नहीं।
दो चीज़ें इस सूची की हर जाँच से बाहर रह जाती हैं। कोई ब्राउज़र एक्सटेंशन किसी भी पेज की सामग्री पढ़ सकता है, उस फ़ाइल समेत जो आपने उसमें लोड की है, और कोई साइट इसे रोक नहीं सकती। आपका ऑपरेटिंग सिस्टम आपकी खोली हर फ़ाइल देख सकता है। अगर कोई डॉक्यूमेंट इतना संवेदनशील है कि ये बातें मायने रखती हैं, तो उसे अपने नियंत्रण वाली मशीन पर ऑफ़लाइन सॉफ़्टवेयर में प्रोसेस करें, और किसी भी वेबसाइट को — इसे भी — उस काम के लिए ग़लत औज़ार मानें।
इसके लिए टूल
स्रोत
- W3C — Content Security Policy Level 3
- MDN — Content-Security-Policy connect-src
- Chrome DevTools — inspect network activity
- MDN — Firefox Network Monitor