Lolly के गोपनीयता और सुरक्षा पेज दावे करते हैं: कोई एनालिटिक्स नहीं, कोई ट्रैकिंग नहीं, फ़ाइलें कभी डिवाइस नहीं छोड़तीं, पूरे सिस्टम में एक कुकी। यह पेज अलग है: यह आपसे इनमें से कुछ भी मानने को नहीं कहता। यह प्रक्रियाओं की एक सूची है, हर एक के साथ ठीक कमांड या क्लिक-पथ और वह आउटपुट जो आप देखेंगे। यहाँ हर दावा मिनटों में परखा जा सकता है, अधिकतर बिना कुछ इंस्टॉल किए।
अगर इस पेज पर कोई जाँच दिखाया गया परिणाम नहीं देती, तो वह या तो एक बग है या टूटा वादा। इसे रिपोर्ट करें किसी भी हाल में, और हम इसे उस गंभीरता से लेंगे जो एक टूटे वादे को चाहिए।
दस सेकंड में इसे काम करते देखें
प्रक्रियाओं से पहले, नतीजा। /verify खोलें और उस पर एक फ़ाइल छोड़ें - कोई अपलोड नहीं, कोई अकाउंट नहीं, किसी सर्वर के लिए इंतज़ार नहीं। यहाँ यह हमारे AI stance पेज से जेनरेट किए गए Queensland तूफ़ान की जाँच कर रहा है: एक Gemini इमेज जिसे Lolly ने खोला, वॉटरमार्क किया और एक्सपोर्ट किया। नीचे हर बैज डिवाइस पर, फ़ाइल के अपने बाइट्स से गणना किया गया था।
signed by Lollyvector SVG79 paths~6.4k nodes48 groups1 image157 KBखुद जाँचेंसाइन की हुई फ़ाइल पाएँ
signed by Lollyvector SVG79 paths~6.4k nodes48 groups1 image157 KBखुद जाँचेंसाइन की हुई फ़ाइल पाएँ
निर्णय एक बैज नहीं बल्कि इनका एक छोटा ढेर है, हर एक एक स्वतंत्र तथ्य:
- Made with Lolly - क्रेडेंशियल बरकरार है और एक Lolly एक्सपोर्ट दर्ज करता है।
- क्रेडेंशियल बरकरार है - साइन किया गया C2PA मेनिफ़ेस्ट पार्स होता है और उसका अपना क्लेम सिग्नेचर सत्यापित होता है।
- बाइट्स नहीं बदले हैं - फ़ाइल का हैश अब भी उससे मेल खाता है जिस पर साइन किया गया था। एक पिक्सल बदलिए और यह बैज पलट जाता है।
- GEN AI - इन पिक्सलों को एक मशीन ने बनाया, और फ़ाइल यही कहती है। Lolly इस दावे को छिपाने के बजाय वापस पढ़ता और दिखाता है।
और पूरा इतिहास फ़ाइल के साथ यात्रा करता है। यहाँ नौ चरण बचे हैं - पाँच जो Google ने इमेज जेनरेट और वॉटरमार्क करते समय दर्ज किए, फिर चार जो Lolly ने इस पेज पर कॉपी को खोलते, चिह्नित करते और कन्वर्ट करते समय दर्ज किए - सीधे बाइट्स से वापस पढ़े गए, आपके डिवाइस पर, और एक टाइमलाइन के रूप में रेंडर किए गए। यह वही इमेज है, उसी तरह सत्यापित, जैसे AI stance पेज पर C2PA टाइमलाइन।
signed by Lollyvector SVG255 paths~14k nodes162 groups287 KBखुद जाँचेंसाइन की हुई फ़ाइल पाएँ
signed by Lollyvector SVG255 paths~14k nodes162 groups287 KBखुद जाँचेंसाइन की हुई फ़ाइल पाएँ
हालांकि इनमें से कोई भी भरोसे का दावा नहीं है - यह तो बस डेमो है। इस पेज का बाकी हिस्सा भरोसे का दावा है: ऊपर हर बैज पुनरुत्पादनीय है, और इसके नीचे की गारंटियों को आप कैसे स्वयं पुनरुत्पादित कर सकते हैं, यह यहां बताया गया है।
आपके ब्राउज़र में, बिना किसी टूल के
1. नेटवर्क देखें। lolly.tools खोलें, अपने ब्राउज़र का DevTools (F12) खोलें, Network टैब पर जाएं और कोई टूल इस्तेमाल करें - QR Code में एक URL टाइप करें, रंग बदलें, PNG एक्सपोर्ट करें। हर रिक्वेस्ट lolly.tools पर ही रहती है: ऐप शेल, टूल की अपनी फ़ाइलें, कैटलॉग एसेट्स। कोई एनालिटिक्स होस्ट नहीं, कोई CDN बीकन नहीं, कोई फ़ॉन्ट सेवा नहीं, कोई "error reporting" एंडपॉइंट नहीं। आप किसी टूल में जो टाइप करते हैं वह किसी भी रिक्वेस्ट में नहीं दिखता - रेंडरिंग लोकल है।
वास्तविक अपवाद - हर एक opt-in है, यूज़र-इनिशिएटेड है और होने पर उसी Network टैब में दिखता है: ब्रांड एडिटर में Google Font जोड़ने पर Google से वह एक फ़ैमिली फ़ेच होती है, एक कंसेंट डायलॉग के बाद जो पहली फ़ेच से पहले, एक बार, आपको यह ठीक-ठीक बताता है; ICC press-profile preset पर क्लिक करने पर वह प्रोफ़ाइल color.org पर ICC की पब्लिक रजिस्ट्री से फ़ेच होती है; ऑप्शनल बिल्ट-इन radio चलाने पर स्टेशन से स्ट्रीम होता है; Meeting Planner में लोकेशन डालने पर उस जगह के निर्देशांक और टाइम ज़ोन के लिए open-meteo की geocoding सेवा पर एक बार, प्रति शहर, लुकअप होता है (जवाब आपकी डिवाइस पर सेव रहते हैं), और इनपुट में यह जानकारी वहीं दी गई है जहां आप टाइप करते हैं; और URL Screenshot आवश्यक रूप से वह URL लोड करता है जो आपने टाइप किया - यही इसका काम है, और आप इसे होते हुए देखते हैं। जो टूल network क्षमता घोषित करता है वह केवल उन होस्ट्स से फ़ेच कर सकता है जो उसके मैनिफ़ेस्ट में allowlist किए गए हैं, और यह तंत्र fail-closed है; फ़िलहाल भेजा गया कोई भी टूल इसे घोषित नहीं करता, इसलिए ब्राउज़र द्वारा लागू Content-Security-Policy ही वह सीमा है जो ऊपर दी गई सूची को उसके होस्ट्स तक सीमित रखती है। privacy policy में इन सबकी संपूर्ण तालिका है; इसका स्थायी नियम यह है कि जो नेटवर्क संपर्क उस तालिका में नहीं है, वह होता ही नहीं।
2. प्लग खींच दें। ऐप लोड करें और एक-दो टूल खोलें, फिर ऑफ़लाइन हो जाएं - एयरप्लेन मोड, या DevTools → Network → Offline। रीलोड करें। गैलरी और आपके खोले हुए हर टूल काम करते रहते हैं, जिनमें आपके इस्तेमाल किए फ़ॉर्मैट्स में रेंडरिंग और एक्सपोर्ट भी शामिल है - किसी टूल की फ़ाइलें और किसी फ़ॉर्मैट का एन्कोडर पहली बार इस्तेमाल पर ही कैश होते हैं, इसलिए ऑफ़लाइन टेस्ट करने से पहले एक बार टूल को ऑनलाइन इस्तेमाल कर लें। यह इस पेज की सबसे मज़बूत जांच है: जो सॉफ़्टवेयर घर फ़ोन करता है, वह अपनी डोरी कटने पर टिक नहीं पाता।
3. कुकीज़ गिनें। DevTools → Application (Firefox: Storage) → Cookies → https://lolly.tools। सूची खाली है - ऐप कोई कुकी सेट नहीं करता। या कंसोल में document.cookie पेस्ट करें: आपको "" मिलेगा। (पूरे सिस्टम में एकमात्र कुकी, lolly_ca_state, एक ऑप्शनल पहचान साइन-इन के दौरान अधिकतम दस मिनट रहती है - साइन-इन पूरा होते ही डिलीट हो जाती है - /api/ca तक सीमित और HttpOnly है: privacy policy इसे सटीक रूप से बताती है।)
4. अपना ही स्टोरेज पढ़ें। वही Application पैनल: Lolly जो कुछ भी रखता है वह आपके सामने जाँचने लायक है - लगभग दो दर्जन साधारण localStorage कीज़ (थीम, भाषा, साइडबार चौड़ाई, साउंड और व्यू सेटिंग्स, साथ ही पब्लिक टूल-कैटलॉग इंडेक्स की एक कैश्ड कॉपी), और IndexedDB में आपके अपने दस्तावेज़। हर वैल्यू एक पठनीय स्ट्रिंग या JSON है - कुछ भी अस्पष्ट नहीं किया गया, पढ़ने से रोकने के लिए कुछ भी एन्कोड नहीं किया गया। ब्राउज़र में साइट डेटा साफ़ करने से यह सब हट जाता है, और Lolly के पास इसकी कोई सर्वर-साइड कॉपी नहीं होती; सेटिंग्स → स्टोरेज → मेरा सारा डेटा हटाएँ ऐप के भीतर से भी वही करता है, और आप इस पैनल में स्टोर और कैश को खाली होते देख सकते हैं।
5. जांचें कि डिस्क्लोज़र संपर्क मौजूद है। /.well-known/security.txt जवाब में एक HTML पेज नहीं, बल्कि RFC 9116 कॉन्टैक्ट ब्लॉक देता है।
टर्मिनल से
6. रेंडर एंडपॉइंट केवल सार्वजनिक डेटा के साथ उत्तर देता है। एकमात्र सर्वर सुविधा जो उपयोगकर्ता द्वारा टाइप किए गए इनपुट को URL में डालती है - हॉट-लिंक रेंडर - यहाँ लाइव है, और privacy policy बताती है कि आपके द्वारा किसी लिंक में डाले गए इनपुट के लिए इसका क्या मतलब है:
curl -s -o /dev/null -w '%{http_code}\n' 'https://lolly.tools/tool/qr-code.svg?url=test'
# 200यह स्विच प्रति-डिप्लॉयमेंट है (LOLLY_DISABLE_RENDER_GET=1): जिस इंस्टेंस पर यह सेट है, वहाँ वही प्रोब 404 लौटाती है - यह अंतर फ़्लैग के काम करने का संकेत है, कोई असंगति नहीं।
7. सर्वर सरफ़ेस गिनने योग्य है। Server Surface हर उस सर्वर-साइड रूट को सूचीबद्ध करता है जो मौजूद है, इस स्थायी नियम के साथ कि जो एंडपॉइंट उस पेज पर नहीं है वह Lolly का हिस्सा नहीं है। इन्हें curl करें; इसके अलावा कुछ और मिलेगा नहीं।
सोर्स में
अगर डिप्लॉय किया गया कोड पब्लिक कोड से अलग होता तो ऊपर लिखी हर बात महज़ दिखावा हो सकती थी। इसलिए कोड जांचें - डिप्लॉयमेंट पब्लिक रिपॉज़िटरी से बनता है:
git clone https://github.com/lolly-tools/lolly.git
cd lolly8. कहीं भी कोई ट्रैकर नहीं, कोई एनालिटिक्स SDK नहीं। भेजे जाने वाले कोड में - इंजन, हर शेल (ब्राउज़र एक्सटेंशन, Tauri ब्रिज ओवरराइड्स और सर्विस वर्कर सहित), सर्वर फ़ंक्शंस और टूल पैक्स में - सामान्य संदिग्धों की तलाश करें:
grep -rn --include='*.ts' --include='*.js' --include='*.mjs' --include='*.html' \
-e googletagmanager -e google-analytics -e posthog -e mixpanel -e hotjar \
-e sentry.io -e segment.com -e '@vercel/analytics' \
engine/src shells/*/src shells/chrome-extension shells/*/bridge-overrides \
shells/web/public/sw.js services packages api community brands/*/tools
# (no output)9. कोई थर्ड-पार्टी DNS रिज़ॉल्वर नहीं। Verify का SEAL चेक कभी भी लुकअप को किसी DNS-over-HTTPS प्रोवाइडर से नहीं भेजता - वेब ऐप के पास कोई रिज़ॉल्वर है ही नहीं:
grep -rn --include='*.ts' --include='*.js' --include='*.mjs' \
-e cloudflare-dns.com -e dns.google -e /dns-query \
engine/src shells/*/src shells/chrome-extension shells/*/bridge-overrides \
shells/web/public/sw.js services packages api community brands/*/tools
# (no output: outside this page and its built copies, the only place those
# hostnames appear in the repo is tests/no-trackers.test.ts, the test that
# bans them)10. सर्टिफ़िकेट सेवा कुछ भी नहीं रखती। पहचान CA के पास कोई इश्यूएंस लॉग नहीं है - न आपका ईमेल, न कोई टाइमस्टैंप, न कोई वेबहुक। इस अनुपस्थिति को grep से जांचा जा सकता है:
grep -rn logIssuance services/ca api/ca
# (no output)टेस्ट द्वारा लागू, वादों से नहीं
ऊपर दी गई तीन सोर्स जांचें एक बार का ऑडिट नहीं हैं - वे टेस्ट सुइट में पिन की गई हैं, ताकि वे चुपचाप बिगड़ न सकें। tests/no-trackers.test.ts बिल्ड को फेल कर देता है अगर:
- यह जिस भेजे गए सोर्स को स्कैन करता है उसमें कहीं भी कोई एनालिटिक्स या ट्रैकिंग SDK दिखे - ऐप, इंजन, सर्वर, एक्सटेंशन और टूल-पैक कोड सभी में समान रूप से,
- उस सोर्स में कोई थर्ड-पार्टी DNS-over-HTTPS रिज़ॉल्वर दिखे,
- CA इश्यूएंस लॉग वापस आ जाए - सोर्स में या जनरेट किए गए सर्वर बंडल में,
- प्राइवेसी पॉलिसी अपने कानूनी रूप से आवश्यक कथन खो दे (नामित नियंत्रक, कानूनी आधार, शिकायत करने का अधिकार)।
इन्हें अपने क्लोन में खुद चलाएँ (Node 22.18+; इस फ़ाइल के लिए pnpm install की ज़रूरत नहीं):
node --test tests/no-trackers.test.ts
# ✔ no analytics or tracking SDK appears anywhere in shipped source
# ✔ no third-party DNS-over-HTTPS resolver is contacted
# ✔ the certificate service logs no personal data
# ✔ privacy policy states a controller, a legal basis and a right to complainपूरा सूट (pnpm install && pnpm test) कई हज़ार और टेस्ट चलाता है, जिसमें Security & Verification में वर्णित एडवर्सेरियल क्रिप्टोग्राफ़ी टेस्ट भी शामिल हैं।
जो आप बाहर से सत्यापित नहीं कर सकते - साफ़ शब्दों में
ऐसा पेज भरोसा तभी कमाता है जब वह अपनी सीमाओं को खुद बताए:
- होस्टिंग एक्सेस लॉग्स। कोई भी सर्वर जो रिक्वेस्ट का जवाब देता है, वह रिक्वेस्ट को लॉग कर सकता है - IP, पथ, टाइमस्टैंप। कोई होस्ट क्या रखता है और क्या नहीं, यह आप सत्यापित नहीं कर सकते, और हम भी अपने प्रोवाइडर के दस्तावेज़ीकृत व्यवहार से आगे नहीं कर सकते। यही वजह है कि आर्किटेक्चर आपकी सामग्री को वायर से पूरी तरह दूर रखता है: जो आपकी डिवाइस से कभी बाहर नहीं जाता, उसे कोई भी लॉग नहीं कर सकता।
- कि डिप्लॉयमेंट यही कोड चलाता है। आप यह सत्यापित कर सकते हैं कि सोर्स स्वच्छ है और डिप्लॉय किया गया व्यवहार उससे मेल खाता है (ऊपर दी गई जांचें दोनों सिरों को कवर करती हैं), लेकिन किसी वेब डिप्लॉयमेंट का बाइनरी-स्तरीय अटेस्टेशन वेब प्लेटफ़ॉर्म देता ही नहीं। इसके निवारण हैं: पब्लिक रिपॉज़िटरी, लागू किए गए टेस्ट और ऑफ़लाइन जांच - छेड़छाड़ किया हुआ डिप्लॉयमेंट जो घर फ़ोन करता है, वह जांच 1 और 2 में तुरंत फेल हो जाएगा।
- टूल हुक्स डिफ़ॉल्ट रूप से सैंडबॉक्स्ड नहीं हैं। किसी टूल का ऑप्शनल लॉजिक समीक्षित होकर, पेज के अपने realm में चलता है; lolly.tools पर हर टूल फ़र्स्ट-पार्टी है और भेजे जाने से पहले समीक्षित किया जाता है। Worker आइसोलेशन अब प्रति-टूल opt-in के रूप में उपलब्ध है - जिस टूल के मैनिफ़ेस्ट में
isolate: trueसेट है, वह अपने हुक्स को ऑफ़-थ्रेड चलाता है - इसलिए जो बाहर से सत्यापित नहीं किया जा सकता वह दायरा सिकुड़ रहा है, लेकिन डिफ़ॉल्ट पथ अब भी in-realm है और समीक्षा ही नियंत्रण है। यह छिपाया नहीं गया, बल्कि स्पष्ट रूप से कहा गया है - देखें design boundaries खंड, जिसमें यह हमेशा से कहा गया है।
अगर कोई जांच फेल हो जाए
इस पेज और देखे गए व्यवहार के बीच कोई भी अंतर एक सुरक्षा रिपोर्ट है, और हम इसे न सुनने के बजाय सुनना कहीं ज़्यादा पसंद करेंगे: fitzy+security@suse.com, किसी भी lolly-tools repository पर Report a vulnerability बटन, या /.well-known/security.txt में दिया गया संपर्क। समन्वित डिस्क्लोज़र और रिपोर्टर क्रेडिट स्थायी नीति है - विवरण SECURITY.md में हैं।