Провери сам

signed by Lollyverify-yourself.htmlHTMLAI generatedgenerated by GeminiПровери самGet the signed filepixels, not shapes10 KB

Страниците на Lolly за поверителност и сигурност съдържат твърдения: без анализи, без проследяване, файловете никога не напускат устройството, само една бисквитка в цялата система. Тази страница е различна: не иска от теб да повярваш на нищо от това. Тя е списък от процедури, всяка с точната команда или път с кликвания и резултата, който ще видиш. Всяко твърдение тук е проверимо за минути, повечето без инсталиране на каквото и да е.

Ако някоя проверка на тази страница не даде показания резултат, това е или бъг, или нарушено обещание. Съобщи го във всеки случай, и ще се отнесем с тежестта, която нарушено обещание заслужава.

Виж го как работи, за десет секунди

Преди процедурите, резултатът. Отвори /verify и пусни файл върху него - без качване, без акаунт, без чакане за сървър. Ето го как проверява генерираната буря в Куинсланд от нашата страница за позиция по ИИ: изображение от Gemini, което Lolly отвори, преоразмери и експортира. Всеки бадж по-долу е изчислен на устройството, от собствените байтове на файла.

Verify на екран с ширина на телефон - изображението на бурята, зелен вердикт Made with Lolly и баджовете за цялост на удостоверението и непроменени байтове, наредени под негоsigned by Lollyvector SVGAI generatedПровери самGet the signed file147 paths~9.4k nodes72 groups2 images254 KBVerify на екран с ширина на телефон - изображението на бурята, зелен вердикт Made with Lolly и баджовете за цялост на удостоверението и непроменени байтове, наредени под негоsigned by Lollyvector SVGAI generatedПровери самGet the signed file147 paths~9.4k nodes72 groups2 images254 KB

Вердиктът не е един бадж, а малка купчина от тях, всеки - независим факт:

И цялата история пътува с файла. Девет стъпки оцеляват тук - пет, записани от Google, докато е генерирал и е поставил воден знак на изображението, после четири, записани от Lolly, докато е отварял, маркирал и конвертирал копието на тази страница - прочетени директно обратно от байтовете, на твоето устройство, и представени като времева линия. Това е същото изображение, верифицирано по същия начин, както времевата линия на C2PA на страницата за позиция по ИИ.

Историята на промените, която Verify чете обратно от изображението на бурята - пет стъпки, записани от Google, после четири от Lolly, завършващи в WebP-а на тази страницаsigned by Lollyvector SVGПровери самGet the signed file71 paths~8.9k nodes78 groups111 KBИсторията на промените, която Verify чете обратно от изображението на бурята - пет стъпки, записани от Google, после четири от Lolly, завършващи в WebP-а на тази страницаsigned by Lollyvector SVGПровери самGet the signed file71 paths~8.9k nodes78 groups111 KB

Нищо от това обаче не е твърдението за доверие - то е демонстрацията. Останалата част от тази страница е твърдението за доверие: всеки бадж по-горе е възпроизводим и ето как да възпроизведеш гаранциите зад тях.

В браузъра ти, без нужда от инструменти

1. Наблюдавай мрежата. Отвори lolly.tools, отвори DevTools на браузъра си (F12), превключи на раздела Network и използвай инструмент - въведи URL адрес в QR Code, смени цветовете, експортирай PNG. Всяка заявка остава на lolly.tools: обвивката на приложението, собствените файлове на инструмента, активите от каталога. Няма хост за анализ, няма CDN маяк, няма услуга за шрифтове, няма крайна точка за „отчитане на грешки“. Това, което въвеждаш в инструмент, не се появява в нито една заявка - визуализацията е локална.

Честните изключения - всяко от тях е доброволно, инициирано от потребителя и видимо в същия раздел Network, когато се случи: добавянето на Google Font в редактора на марката извлича точно това семейство от Google, след диалог за съгласие, който казва точно това, веднъж, преди първото извличане; кликването върху предварителна настройка за ICC печатен профил извлича този профил от публичния регистър на ICC на color.org; пускането на незадължителното вградено радио стриймва от станцията; въвеждането на местоположение в Meeting Planner търси това място в услугата за геокодиране на open-meteo за координатите и часовата зона, веднъж на град (отговорите се запазват на устройството ти), а полето за въвеждане носи точно това обяснение там, където пишеш; и URL Screenshot по необходимост зарежда URL адреса, който си въвел - това му е работата, и ти виждаш как се случва. Инструмент, който декларира мрежова способност, може да прави заявки само към хостовете, разрешени в неговия манифест, и този механизъм е fail-closed; в момента нито един публикуван инструмент не декларира такава, така че прилаганата от браузъра Content-Security-Policy е границата, която реално ограничава списъка по-горе до неговите хостове. Политиката за поверителност поддържа каноничната таблица с всички тях; постоянното ѝ правило е, че мрежов контакт, който не е в тази таблица, не се случва.

2. Изключи връзката. Зареди приложението и отвори един-два инструмента, след което мини офлайн - режим „в самолет“ или DevTools → Network → Offline. Презареди. Галерията и всеки отворен от теб инструмент продължават да работят, включително визуализация и експорт във форматите, които си използвал - файловете на инструмента и кодерът на формата се кешират при първата им употреба, затова изпробвай инструмента веднъж онлайн, преди да го тестваш офлайн. Това е най-силната отделна проверка на тази страница: софтуер, който „се обажда вкъщи“, не оцелява при прекъснат кабел.

3. Преброй бисквитките. DevTools → Application (Firefox: Storage) → Cookies → https://lolly.tools. Списъкът е празен - приложението не задава бисквитки. Или постави document.cookie в конзолата: получаваш "". (Единствената бисквитка в цялата система, lolly_ca_state, живее най-много десет минути по време на незадължителен вход с идентичност - изтрива се в момента на завършване на входа - обхваната е до /api/ca и е HttpOnly: политиката за поверителност я описва точно.)

4. Прочети собственото си хранилище. Същият панел Application: всичко, което Lolly пази, е достъпно за преглед пред теб - около двайсетина обикновени ключа в localStorage (тема, език, ширина на страничната лента, настройки на звука и изгледа, плюс кеширано копие на публичния индекс на каталога с инструменти) и твоите собствени документи в IndexedDB. Всяка стойност е четим низ или JSON - нищо не е замъглено, нищо не е кодирано, за да обезкуражи четенето му. Profile → Clear all my data ги изтрива; същото прави и изчистването на данните на сайта в браузъра, защото няма копие на сървъра, което да оцелее.

5. Провери дали съществува контакт за докладване. /.well-known/security.txt отговаря с блок за контакт по RFC 9116, а не с HTML страница.

От терминал

6. Крайната точка за визуализация е изключена на lolly.tools. Единствената сървърна функция, която би поставила въведени от потребителя данни в URL адрес - визуализации чрез директен линк - е деактивирана тук, докато услугата не се премести на хостинг, собственост на организацията (политиката за поверителност обяснява защо):

curl -s -o /dev/null -w '%{http_code}\n' 'https://lolly.tools/tool/qr-code.svg?url=test'
# 404

Превключвателят е за всяко разгръщане поотделно (LOLLY_DISABLE_RENDER_GET=1): на lolly.art, публичния демо инстанс, визуализациите чрез директен линк умишлено са активни, така че същата проверка там връща изображение - тази разлика е знак, че флагът работи, а не несъответствие.

7. Сървърната повърхност е изброима. Server Surface изброява всеки съществуващ маршрут от страна на сървъра, като постоянното правило е, че крайна точка, която не е на тази страница, не е част от Lolly. Направи curl към тях; няма нищо друго за откриване.

В изходния код

Всичко по-горе все пак би могло да е театър, ако разгърнатият код се различаваше от публичния код. Затова провери кода - разгръщането се изгражда от публичното хранилище:

git clone --recurse-submodules https://github.com/lolly-tools/lolly.git
cd lolly

8. Никъде няма тракер, никъде няма SDK за анализ. Претърси кода, който се публикува - двигателя, всяка обвивка (включително разширението за браузър, заместванията на моста на Tauri и service worker-а), сървърните функции и пакетите с инструменти - за обичайните заподозрени:

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 резолвър от трета страна. Проверката SEAL на Verify никога не пренасочва справките през доставчик на 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 няма дневник за издаване - нито имейла ти, нито времева марка, нито webhook. Отсъствието е проверимо с grep:

grep -rn logIssuance services/ca api/ca
# (no output)

Наложено от тестове, не от обещания

Трите проверки на изходния код по-горе не са еднократен одит - те са закрепени в тестовия пакет, така че не могат тихомълком да остареят. tests/no-trackers.test.ts проваля билда, ако:

Изпълни ги сам в клонираното хранилище (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.

Какво не можеш да провериш отвън - казано ясно

Страница като тази печели доверие, като назовава собствените си граници:

Ако проверка не мине

Разминаване между тази страница и наблюдаваното поведение е сигнал за сигурност и наистина предпочитаме да го чуем, отколкото не: fitzy+security@suse.com, бутонът Report a vulnerability в което и да е хранилище на lolly-tools или контактът в /.well-known/security.txt. Координирано разкриване и признание на докладващия са постоянната политика - SECURITY.md съдържа подробностите.