Verificalo tu stesso

signed by Lollyverify-yourself.htmlHTMLAI generatedgenerated by GeminiVerifica tu stessoGet the signed filepixels, not shapes10 KB

Le pagine sulla privacy e sulla sicurezza di Lolly fanno delle affermazioni: nessuna analytics, nessun tracciamento, i file non lasciano mai il dispositivo, un solo cookie in tutto il sistema. Questa pagina è diversa: non ti chiede di credere a nulla di tutto ciò. È un elenco di procedure, ciascuna con il comando o il percorso di clic esatto e l'output che vedrai. Ogni affermazione qui è falsificabile in pochi minuti, la maggior parte senza installare nulla.

Se un controllo di questa pagina non produce il risultato mostrato, è un bug oppure una promessa infranta. Segnalalo in entrambi i casi, e lo tratteremo con la gravità che una promessa infranta merita.

Guardalo funzionare, in dieci secondi

Prima delle procedure, il risultato. Apri /verify e trascinaci sopra un file - nessun caricamento, nessun account, nessuna attesa di un server. Ecco qui che controlla la tempesta generata su Queensland dalla nostra pagina sulla posizione riguardo all'IA: un'immagine Gemini che Lolly ha aperto, ridimensionato ed esportato. Ogni badge qui sotto è stato calcolato sul dispositivo, a partire dai byte stessi del file.

Verify su uno schermo largo quanto un telefono - l'immagine della tempesta, un verdetto verde Made with Lolly e i badge di credenziale intatta e byte invariati impilati sottosigned by Lollyvector SVGAI generatedVerifica tu stessoGet the signed file147 paths~9.4k nodes72 groups2 images254 KBVerify su uno schermo largo quanto un telefono - l'immagine della tempesta, un verdetto verde Made with Lolly e i badge di credenziale intatta e byte invariati impilati sottosigned by Lollyvector SVGAI generatedVerifica tu stessoGet the signed file147 paths~9.4k nodes72 groups2 images254 KB

Il verdetto non è un unico badge ma un piccolo insieme di essi, ciascuno un fatto indipendente:

E l'intera cronologia viaggia con il file. Nove passaggi sopravvivono qui - cinque registrati da Google mentre generava e filigranava l'immagine, poi quattro registrati da Lolly mentre apriva, marcava e convertiva la copia in questa pagina - letti direttamente dai byte, sul tuo dispositivo, e resi come una timeline. È la stessa immagine, verificata nello stesso modo, della timeline C2PA nella pagina sulla posizione riguardo all'IA.

La cronologia delle modifiche che Verify legge dall'immagine della tempesta - cinque passaggi registrati da Google, poi quattro da Lolly, terminando nel WebP di questa paginasigned by Lollyvector SVGVerifica tu stessoGet the signed file71 paths~8.9k nodes78 groups111 KBLa cronologia delle modifiche che Verify legge dall'immagine della tempesta - cinque passaggi registrati da Google, poi quattro da Lolly, terminando nel WebP di questa paginasigned by Lollyvector SVGVerifica tu stessoGet the signed file71 paths~8.9k nodes78 groups111 KB

Nulla di tutto questo è però la dichiarazione di fiducia - è la dimostrazione. Il resto di questa pagina è la dichiarazione di fiducia: ogni badge qui sopra è riproducibile, ed ecco come riprodurre le garanzie che ci sono dietro.

Nel tuo browser, senza strumenti

1. Osserva la rete. Apri lolly.tools, apri i DevTools del browser (F12), passa alla scheda Network e usa uno strumento - digita un URL in QR Code, cambia i colori, esporta un PNG. Ogni richiesta resta su lolly.tools: il guscio dell'app, i file dello strumento, gli asset del catalogo. Nessun host di analytics, nessun beacon CDN, nessun servizio di font, nessun endpoint di "error reporting". Ciò che digiti in uno strumento non compare in nessuna richiesta - il rendering è locale.

Le eccezioni oneste - ognuna opt-in, avviata dall'utente e visibile nella stessa scheda Network quando accade: aggiungere un Google Font nell'editor del brand recupera quella singola famiglia da Google, dopo una finestra di consenso che lo dichiara esattamente, una volta, prima della prima richiesta; cliccare un preset di profilo di stampa ICC recupera quel profilo dal registro pubblico dell'ICC su color.org; riprodurre l'opzionale radio integrata trasmette in streaming dalla stazione; inserire una località in Meeting Planner cerca quel luogo presso il servizio di geocoding di open-meteo per coordinate e fuso orario, una volta per città (le risposte vengono salvate sul tuo dispositivo), e il campo porta quella nota proprio dove digiti; e URL Screenshot carica necessariamente l'URL che hai digitato - è il suo compito, e lo vedi accadere. Uno strumento che dichiara una capacità di rete può contattare solo gli host consentiti nella sua manifest, e quel meccanismo è fail-closed; nessuno strumento attualmente distribuito ne dichiara una, quindi la Content-Security-Policy applicata dal browser è il confine che di fatto limita l'elenco sopra ai suoi host. La informativa sulla privacy mantiene la tabella canonica di tutto questo; la sua regola di base è che un contatto di rete non presente in quella tabella non avviene.

2. Stacca la spina. Carica l'app e apri uno o due strumenti, poi vai offline - modalità aereo, oppure DevTools → Network → Offline. Ricarica. La galleria e ogni strumento che hai aperto continuano a funzionare, incluso il rendering e l'esportazione nei formati che hai usato - i file di uno strumento e l'encoder di un formato vengono messi in cache al primo utilizzo, quindi usa uno strumento una volta online prima di testarlo offline. Questo è il controllo singolo più forte di questa pagina: un software che telefona a casa non sopravvive al taglio del cavo.

3. Conta i cookie. DevTools → Application (Firefox: Storage) → Cookies → https://lolly.tools. L'elenco è vuoto - l'app non imposta cookie. Oppure incolla document.cookie nella console: ottieni "". (L'unico cookie in tutto il sistema, lolly_ca_state, vive al massimo dieci minuti durante un accesso identitario opzionale - eliminato nel momento in cui l'accesso si completa - è ambito a /api/ca ed è HttpOnly: la informativa sulla privacy lo descrive con precisione.)

4. Leggi il tuo stesso storage. Stesso pannello Application: tutto ciò che Lolly conserva è ispezionabile davanti a te - una ventina di chiavi localStorage semplici (tema, lingua, larghezza della sidebar, impostazioni di suono e visualizzazione, più una copia in cache dell'indice pubblico del catalogo strumenti), e i tuoi documenti in IndexedDB. Ogni valore è una stringa o un JSON leggibile - nulla è offuscato, nulla è codificato per scoraggiarne la lettura. Profile → Clear all my data lo cancella; lo stesso fa la cancellazione dei dati del sito nel browser, perché non esiste una copia lato server che possa sopravvivere.

5. Verifica che esista il contatto per la segnalazione. /.well-known/security.txt risponde con un blocco di contatto RFC 9116, non una pagina HTML.

Da un terminale

6. L'endpoint di rendering è disattivato su lolly.tools. L'unica funzionalità server che metterebbe input digitati dall'utente in un URL - i render hot-link - è disabilitata qui finché il servizio non passa a un hosting di proprietà dell'organizzazione (la informativa sulla privacy spiega perché):

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

L'interruttore è per-deployment (LOLLY_DISABLE_RENDER_GET=1): su lolly.art, l'istanza demo pubblica, i render hot-link sono deliberatamente attivi, quindi la stessa verifica lì restituisce un'immagine - quella differenza è il flag che funziona, non un'incoerenza.

7. La superficie server è enumerabile. Server Surface elenca ogni rotta lato server esistente, con la regola di base che un endpoint non presente in quella pagina non fa parte di Lolly. Provale con curl; non c'è nient'altro da trovare.

Nel codice sorgente

Tutto quanto sopra potrebbe comunque essere teatro se il codice distribuito differisse da quello pubblico. Quindi controlla il codice - il deployment viene compilato da il repository pubblico:

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

8. Nessun tracker, nessun SDK di analytics, da nessuna parte. Cerca nel codice distribuito - il motore, ogni shell (inclusa l'estensione del browser, gli override del bridge Tauri e il service worker), le funzioni server e i pacchetti degli strumenti - i soliti sospetti:

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. Nessun resolver DNS di terze parti. Il controllo SEAL di Verify non instrada mai le ricerche attraverso un provider DNS-over-HTTPS - l'app web semplicemente non ha alcun resolver:

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. Il servizio di certificazione non conserva nulla. La CA identitaria non ha un registro di emissione - né la tua email, né un timestamp, né un webhook. L'assenza è verificabile con grep:

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

Applicato dai test, non dalle promesse

I tre controlli sul sorgente sopra non sono un audit una tantum - sono fissati nella suite di test, così non possono degradarsi silenziosamente. tests/no-trackers.test.ts fa fallire la build se:

Eseguili tu stesso nel clone (Node 22.18+; non serve npm install per questo file):

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

La suite completa (npm install && npm test) ne esegue diverse migliaia in più, inclusi i test crittografici avversariali descritti in Sicurezza e verifica.

Cosa non puoi verificare dall'esterno - detto chiaramente

Una pagina come questa guadagna fiducia nominando i propri limiti:

Se un controllo fallisce

Una discrepanza tra questa pagina e il comportamento osservato è una segnalazione di sicurezza, e preferiamo davvero riceverla che non riceverla: fitzy+security@suse.com, il pulsante Report a vulnerability su qualsiasi repository lolly-tools o il contatto in /.well-known/security.txt. La divulgazione coordinata e il credito al segnalatore sono la politica in vigore - SECURITY.md ne contiene i dettagli.