Lolly
ایپ کھولیں

خود تصدیق کریں

signed by Lollyverify-yourself.htmlHTMLpixels, not shapes10 KBAI generatedgenerated by Geminiخود جانچیںدستخط شدہ فائل حاصل کریں

Lolly کے privacy اور security صفحات دعوے کرتے ہیں: کوئی analytics نہیں، کوئی tracking نہیں، فائلیں کبھی device سے باہر نہیں جاتیں، پورے سسٹم میں ایک cookie۔ یہ صفحہ مختلف ہے: یہ آپ سے ان میں سے کسی بات پر یقین کرنے کو نہیں کہتا۔ یہ طریقہ کار کی ایک فہرست ہے، ہر ایک کے ساتھ عین command یا click-path اور وہ نتیجہ جو آپ کو نظر آئے گا۔ یہاں ہر دعویٰ منٹوں میں جانچا جا سکتا ہے، اکثر بغیر کچھ انسٹال کیے۔

اگر اس صفحے پر کوئی چیک وہ نتیجہ نہیں دیتا جو دکھایا گیا ہے، تو یہ یا تو ایک bug ہے یا ٹوٹا ہوا وعدہ۔ اسے رپورٹ کریں دونوں صورتوں میں، اور ہم اسے اس شدت سے دیکھیں گے جو ایک ٹوٹے ہوئے وعدے کی مستحق ہے۔

اسے کام کرتے دیکھیں، دس سیکنڈ میں

طریقہ کار سے پہلے، نتیجہ۔ /verify کھولیں اور اس پر ایک فائل ڈالیں - نہ کوئی upload، نہ account، نہ کسی server کا انتظار۔ یہاں یہ ہمارے AI stance صفحے سے generated Queensland طوفان کو چیک کر رہا ہے: ایک Gemini تصویر جسے Lolly نے کھولا، watermark کیا اور export کیا۔ نیچے ہر badge device پر ہی، فائل کے اپنے bytes سے حساب کیا گیا۔

Verify on a phone-width screen - the storm image, a green Made with Lolly verdict and the credential-intact and bytes-unchanged badges stacked beneath it signed by Lollyvector SVG79 paths~6.4k nodes48 groups1 image157 KBخود جانچیںدستخط شدہ فائل حاصل کریںVerify on a phone-width screen - the storm image, a green Made with Lolly verdict and the credential-intact and bytes-unchanged badges stacked beneath it signed by Lollyvector SVG79 paths~6.4k nodes48 groups1 image157 KBخود جانچیںدستخط شدہ فائل حاصل کریں

نتیجہ ایک badge نہیں بلکہ ان کا ایک چھوٹا ڈھیر ہے، ہر ایک ایک آزاد حقیقت:

اور پوری تاریخ فائل کے ساتھ سفر کرتی ہے۔ یہاں نو مراحل موجود ہیں - پانچ جو Google نے تصویر بناتے اور watermark کرتے وقت ریکارڈ کیے، پھر چار جو Lolly نے اس صفحے پر کاپی کھولتے، نشان زد کرتے اور بدلتے وقت ریکارڈ کیے - سیدھے bytes سے، آپ کے device پر، واپس پڑھے اور ایک ٹائم لائن کے طور پر پیش کیے گئے۔ یہ وہی تصویر ہے، اسی طرح تصدیق شدہ، جیسے AI stance صفحے پر C2PA ٹائم لائن میں۔

The change history Verify reads back out of the storm image - five steps recorded by Google, then four by Lolly, ending in the WebP on this page signed by Lollyvector SVG255 paths~14k nodes162 groups287 KBخود جانچیںدستخط شدہ فائل حاصل کریںThe change history Verify reads back out of the storm image - five steps recorded by Google, then four by Lolly, ending in the WebP on this page signed by Lollyvector SVG255 paths~14k nodes162 groups287 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 ہے - کچھ بھی مبہم نہیں، کچھ بھی پڑھنے سے روکنے کے لیے انکوڈ نہیں کیا گیا۔ براؤزر میں سائٹ ڈیٹا صاف کرنے سے یہ سب ختم ہو جاتا ہے، اور Lolly کے پاس اس کی کوئی سرور کاپی نہیں ہوتی؛ سیٹنگز → اسٹوریج → میرا تمام ڈیٹا صاف کریں ایپ کے اندر سے بھی یہی کرتا ہے، اور آپ اس پینل میں stores اور caches کو خالی ہوتے دیکھ سکتے ہیں۔

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 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 بلڈ کو ناکام کر دیتا ہے اگر:

انہیں کلون میں خود چلائیں (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 میں بیان کردہ ایڈورسیریل کرپٹوگرافی ٹیسٹس۔

جو آپ باہر سے تصدیق نہیں کر سکتے - صاف الفاظ میں

اس جیسا صفحہ اپنی حدود کو واضح طور پر بیان کر کے اعتماد کماتا ہے:

اگر کوئی جانچ ناکام ہو جائے

اس صفحے اور مشاہدہ کردہ رویے کے درمیان کوئی تضاد ایک سیکیورٹی رپورٹ ہے، اور ہم واقعی چاہتے ہیں کہ آپ اسے نہ سنانے کے بجائے سنائیں: fitzy+security@suse.com، کسی بھی lolly-tools repository پر موجود Report a vulnerability بٹن، یا /.well-known/security.txt میں دیا گیا رابطہ۔ ہم آہنگ افشا (coordinated disclosure) اور رپورٹر کریڈٹ مستقل پالیسی ہے - تفصیلات SECURITY.md میں موجود ہیں۔