Lolly کے privacy اور security صفحات دعوے کرتے ہیں: کوئی analytics نہیں، کوئی tracking نہیں، فائلیں کبھی device سے باہر نہیں جاتیں، پورے سسٹم میں ایک cookie۔ یہ صفحہ مختلف ہے: یہ آپ سے ان میں سے کسی بات پر یقین کرنے کو نہیں کہتا۔ یہ طریقہ کار کی ایک فہرست ہے، ہر ایک کے ساتھ عین command یا click-path اور وہ نتیجہ جو آپ کو نظر آئے گا۔ یہاں ہر دعویٰ منٹوں میں جانچا جا سکتا ہے، اکثر بغیر کچھ انسٹال کیے۔
اگر اس صفحے پر کوئی چیک وہ نتیجہ نہیں دیتا جو دکھایا گیا ہے، تو یہ یا تو ایک bug ہے یا ٹوٹا ہوا وعدہ۔ اسے رپورٹ کریں دونوں صورتوں میں، اور ہم اسے اس شدت سے دیکھیں گے جو ایک ٹوٹے ہوئے وعدے کی مستحق ہے۔
اسے کام کرتے دیکھیں، دس سیکنڈ میں
طریقہ کار سے پہلے، نتیجہ۔ /verify کھولیں اور اس پر ایک فائل ڈالیں - نہ کوئی upload، نہ account، نہ کسی server کا انتظار۔ یہاں یہ ہمارے AI stance صفحے سے generated Queensland طوفان کو چیک کر رہا ہے: ایک Gemini تصویر جسے Lolly نے کھولا، resize کیا اور export کیا۔ نیچے ہر badge device پر ہی، فائل کے اپنے bytes سے حساب کیا گیا۔
signed by Lollyvector SVGAI generatedخود جانچیںGet the signed file147 paths~9.4k nodes72 groups2 images254 KB
signed by Lollyvector SVGAI generatedخود جانچیںGet the signed file147 paths~9.4k nodes72 groups2 images254 KB
نتیجہ ایک badge نہیں بلکہ ان کا ایک چھوٹا ڈھیر ہے، ہر ایک ایک آزاد حقیقت:
- Made with Lolly - credential برقرار ہے اور ایک Lolly export ریکارڈ کرتا ہے۔
- Credential برقرار ہے - دستخط شدہ C2PA manifest parse ہوتا ہے اور اس کا اپنا claim signature تصدیق ہوتا ہے۔
- Bytes تبدیل نہیں ہوئے - فائل کا hash اب بھی اس سے میل کھاتا ہے جس پر دستخط ہوئے تھے۔ ایک pixel بدلیں اور یہ badge پلٹ جاتا ہے۔
- GEN AI - ایک مشین نے یہ pixels بنائے، اور فائل یہی کہتی ہے۔ Lolly اس دعوے کو چھپانے کے بجائے واپس پڑھ کر دکھاتا ہے۔
اور پوری تاریخ فائل کے ساتھ سفر کرتی ہے۔ یہاں نو مراحل موجود ہیں - پانچ جو Google نے تصویر بناتے اور watermark کرتے وقت ریکارڈ کیے، پھر چار جو Lolly نے اس صفحے پر کاپی کھولتے، نشان زد کرتے اور بدلتے وقت ریکارڈ کیے - سیدھے bytes سے، آپ کے device پر، واپس پڑھے اور ایک ٹائم لائن کے طور پر پیش کیے گئے۔ یہ وہی تصویر ہے، اسی طرح تصدیق شدہ، جیسے AI stance صفحے پر C2PA ٹائم لائن میں۔
signed by Lollyvector SVGخود جانچیںGet the signed file71 paths~8.9k nodes78 groups111 KB
signed by Lollyvector SVGخود جانچیںGet the signed file71 paths~8.9k nodes78 groups111 KB
تاہم ان میں سے کوئی بھی اعتماد کا دعویٰ نہیں ہے - یہ صرف ڈیمو ہے۔ اس صفحے کا باقی حصہ اعتماد کا دعویٰ ہے: اوپر دیا گیا ہر بیج قابلِ تکرار ہے، اور یہاں یہ ہے کہ آپ ان کے پیچھے موجود ضمانتوں کو کیسے دوبارہ ثابت کر سکتے ہیں۔
آپ کے براؤزر میں، کسی ٹول کی ضرورت نہیں
1. نیٹ ورک دیکھیں۔ lolly.tools کھولیں، اپنے براؤزر کا DevTools (F12) کھولیں، Network ٹیب پر جائیں اور کوئی ٹول استعمال کریں - QR Code میں کوئی URL ٹائپ کریں، رنگ تبدیل کریں، PNG ایکسپورٹ کریں۔ ہر درخواست lolly.tools پر ہی رہتی ہے: ایپ شیل، ٹول کی اپنی فائلیں، کیٹلاگ اثاثے۔ نہ کوئی اینالیٹکس ہوسٹ، نہ CDN بیکن، نہ فونٹ سروس، نہ "error reporting" اینڈ پوائنٹ۔ آپ ٹول میں جو کچھ ٹائپ کرتے ہیں وہ کسی بھی درخواست میں شامل نہیں ہوتا - رینڈرنگ مقامی طور پر ہوتی ہے۔
دیانت دار مستثنیات - ہر ایک اختیاری، صارف کی جانب سے شروع کردہ اور وقوع پذیر ہوتے وقت اسی Network ٹیب میں نظر آنے والی: برانڈ ایڈیٹر میں Google Font شامل کرنا اس ایک فیملی کو گوگل سے حاصل کرتا ہے، ایک رضامندی کے ڈائیلاگ کے بعد جو پہلی درخواست سے پہلے، ایک بار، بالکل یہی بتاتا ہے؛ ICC press-profile preset پر کلک کرنے سے وہ پروفائل color.org پر ICC کی عوامی رجسٹری سے حاصل کی جاتی ہے؛ اختیاری بلٹ اِن ریڈیو چلانے سے اسٹیشن سے سٹریمنگ ہوتی ہے؛ Meeting Planner میں کوئی مقام درج کرنے سے وہ جگہ open-meteo کی جیو کوڈنگ سروس سے اس کے احداثیات اور ٹائم زون کے لیے تلاش کی جاتی ہے، فی شہر ایک بار (جوابات آپ کے آلے پر محفوظ ہو جاتے ہیں)، اور یہ افشا انہی جگہ ظاہر ہوتا ہے جہاں آپ ٹائپ کرتے ہیں؛ اور URL Screenshot لازمی طور پر وہ URL لوڈ کرتا ہے جو آپ نے ٹائپ کیا - یہی اس کا کام ہے، اور آپ اسے ہوتے ہوئے دیکھتے ہیں۔ جو ٹول نیٹ ورک صلاحیت کا اعلان کرتا ہے وہ صرف انہی ہوسٹس سے ڈیٹا حاصل کر سکتا ہے جو اس کے مینی فیسٹ میں اجازت یافتہ ہوں، اور یہ میکانزم 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 ہے - کچھ بھی مبہم نہیں کیا گیا، کچھ بھی پڑھنے سے روکنے کے لیے اینکوڈ نہیں کیا گیا۔ Profile → Clear all my data اسے مٹا دیتا ہے؛ براؤزر میں سائٹ ڈیٹا صاف کرنے سے بھی یہی ہوتا ہے، کیونکہ اس سے بچنے کے لیے کوئی سرور سائیڈ کاپی موجود ہی نہیں۔
5. تصدیق کریں کہ افشا رابطہ موجود ہے۔ /.well-known/security.txt ایک HTML صفحہ نہیں بلکہ RFC 9116 رابطہ بلاک کے ساتھ جواب دیتا ہے۔
ٹرمینل سے
6. رینڈر اینڈ پوائنٹ lolly.tools پر بند ہے۔ سرور کی وہ واحد خصوصیت جو صارف کے ٹائپ کردہ ان پٹس کو URL میں شامل کر دیتی - hot-link renders - یہاں اس وقت تک غیر فعال ہے جب تک سروس تنظیم کی اپنی ملکیتی ہوسٹنگ پر منتقل نہیں ہوتی (privacy policy اس کی وجہ بیان کرتی ہے):
curl -s -o /dev/null -w '%{http_code}\n' 'https://lolly.tools/tool/qr-code.svg?url=test'
# 404
یہ سوئچ فی تعیناتی (per-deployment) ہے (LOLLY_DISABLE_RENDER_GET=1): lolly.art پر، جو عوامی ڈیمو انسٹینس ہے، hot-link renders جان بوجھ کر فعال رکھے گئے ہیں، اس لیے وہاں وہی جانچ ایک تصویر لوٹاتی ہے - یہ فرق فلیگ کے کام کرنے کی علامت ہے، نہ کہ کوئی تضاد۔
7. سرور کی سطح شمار کی جا سکتی ہے۔ Server Surface موجود ہر سرور سائیڈ روٹ کی فہرست دیتا ہے، اس مستقل اصول کے ساتھ کہ جو اینڈ پوائنٹ اس صفحے پر نہیں وہ Lolly کا حصہ نہیں۔ انہیں curl کریں؛ اس کے سوا کچھ اور ملنے کو نہیں۔
سورس کوڈ میں
اوپر بیان کردہ سب کچھ پھر بھی محض دکھاوا ہو سکتا ہے اگر تعینات کردہ کوڈ عوامی کوڈ سے مختلف ہو۔ تو کوڈ چیک کریں - تعیناتی عوامی ریپوزٹری سے بلڈ ہوتی ہے:
git clone --recurse-submodules https://github.com/lolly-tools/lolly.git
cd lolly
8. کہیں بھی کوئی ٹریکر، کوئی اینالیٹکس SDK نہیں۔ شپ ہونے والے کوڈ کو تلاش کریں - انجن، ہر شیل (بشمول براؤزر ایکسٹینشن، Tauri bridge overrides اور سروس ورکر)، سرور فنکشنز اور ٹول پیکس - عام مشتبہ افراد کے لیے:
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+؛ اس فائل کے لیے npm 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
مکمل سویٹ (npm install && npm test) مزید کئی ہزار ٹیسٹ چلاتی ہے، بشمول وہ مخالفانہ کرپٹوگرافی ٹیسٹس جو Security & Verification میں بیان کیے گئے ہیں۔
جو آپ باہر سے تصدیق نہیں کر سکتے - صاف الفاظ میں
اس جیسا صفحہ اپنی حدود کو واضح طور پر بیان کر کے اعتماد کماتا ہے:
- ہوسٹنگ رسائی لاگز۔ کوئی بھی سرور جو کسی درخواست کا جواب دیتا ہے وہ اس درخواست کو لاگ کر سکتا ہے - IP، پاتھ، ٹائم اسٹیمپ۔ آپ یہ تصدیق نہیں کر سکتے کہ کوئی ہوسٹ کیا رکھتا یا نہیں رکھتا، اور نہ ہی ہم اپنے فراہم کنندہ کے دستاویزی رویے سے آگے یہ کر سکتے ہیں۔ یہی وجہ ہے کہ یہ فن تعمیر آپ کے مواد کو مکمل طور پر وائر سے دور رکھتا ہے: جو کبھی آپ کے آلے سے باہر نہیں جاتا اسے کوئی بھی لاگ نہیں کر سکتا۔
- کہ تعیناتی یہی کوڈ چلاتی ہے۔ آپ تصدیق کر سکتے ہیں کہ سورس صاف ہے اور تعینات کردہ رویہ اس سے میل کھاتا ہے (اوپر دی گئی جانچیں دونوں سِرے پورے کرتی ہیں)، لیکن ویب تعیناتی کی بائنری سطح کی تصدیق ویب پلیٹ فارم کی پیش کردہ کوئی چیز نہیں۔ تدارک عوامی ریپو، نافذ کردہ ٹیسٹس اور آف لائن جانچ ہیں - کوئی چھیڑی گئی تعیناتی جو گھر واپس رابطہ کرے وہ جانچ 1 اور 2 میں فوراً ناکام ہو جائے گی۔
- ٹول ہکس بطور ڈیفالٹ سینڈ باکس شدہ نہیں ہیں۔ ٹول کی اختیاری منطق جائزہ شدہ حالت میں، صفحے کے اپنے ہی realm میں چلتی ہے؛ lolly.tools پر ہر ٹول فرسٹ پارٹی ہے اور شپ ہونے سے پہلے اس کا جائزہ لیا جاتا ہے۔ Worker isolation اب فی ٹول اختیاری سہولت کے طور پر شپ ہوتی ہے - وہ ٹول جس کا مینی فیسٹ
isolate: trueسیٹ کرتا ہے اس کے بجائے اپنے ہکس آف تھریڈ چلاتا ہے - چنانچہ جو آپ باہر سے تصدیق نہیں کر سکتے وہ دائرہ تنگ ہو رہا ہے، مگر ڈیفالٹ راستہ اب بھی اِن ریلم ہے اور جائزہ ہی اب بھی کنٹرول ہے۔ یہ بات بیان کی گئی ہے، چھپائی نہیں گئی - دیکھیں design boundaries سیکشن، جو ہمیشہ سے یہی کہتا آیا ہے۔
اگر کوئی جانچ ناکام ہو جائے
اس صفحے اور مشاہدہ کردہ رویے کے درمیان کوئی تضاد ایک سیکیورٹی رپورٹ ہے، اور ہم واقعی چاہتے ہیں کہ آپ اسے نہ سنانے کے بجائے سنائیں: fitzy+security@suse.com، کسی بھی lolly-tools repository پر موجود Report a vulnerability بٹن، یا /.well-known/security.txt میں دیا گیا رابطہ۔ ہم آہنگ افشا (coordinated disclosure) اور رپورٹر کریڈٹ مستقل پالیسی ہے - تفصیلات SECURITY.md میں موجود ہیں۔