GDPR e privacy
Privacy by Design
qr3.app è progettato fin dall’inizio per essere conforme al GDPR:
- Anonimizzazione dell’IP — Gli indirizzi IP vengono immediatamente convertiti in hash SHA-256 (con un salt che ruota quotidianamente) nell’Edge Worker. L’IP originale non raggiunge mai il database.
- Criteri di conservazione — I dati delle scansioni vengono eliminati automaticamente in base al piano (Free: 7 giorni, Pro: 90 giorni, Business: 1 anno).
- Minimizzazione dei dati — Vengono raccolti solo i dati strettamente necessari al funzionamento.
API Privacy
Riepilogo dei dati (Art. 15 GDPR)
GET /v1/account/privacy — Restituisce una panoramica di tutti i dati memorizzati.
curl https://qr3.app/v1/account/privacy \ -H "Authorization: Bearer qr3_sk_..."Risposta:
{ "data": { "workspace_id": "ws_xxx", "stored_data": { "qr_codes": { "count": 42, "oldest_at": "2026-03-01T..." }, "scan_records": { "count": 15000, "oldest_at": "2026-03-01T..." }, "api_keys": { "count": 2 }, "webhooks": { "count": 1 } }, "your_rights": { "access": "GET /v1/account/export", "erasure": "DELETE /v1/account", }, "data_processing": { "legal_basis": "Contract performance (Art. 6(1)(b) GDPR)", "sub_processors": [ { "name": "Cloudflare, Inc.", "purpose": "CDN, edge computing, database" } ] } }}Esportazione dei dati (Art. 20 GDPR — Portabilità dei dati)
GET /v1/account/export — Scarica tutti i dati come file JSON.
curl https://qr3.app/v1/account/export \ -H "Authorization: Bearer qr3_sk_..." \ -o meine-daten.jsonL’esportazione contiene:
- Tutti i QR Code (inclusi quelli eliminati)
- Statistiche di scansione aggregate (nessun hash IP grezzo)
- Timestamp di creazione e modifica
Eliminazione dell’account (Art. 17 GDPR — Diritto all’oblio)
DELETE /v1/account — Eliminazione irreversibile di tutti i dati.
curl -X DELETE https://qr3.app/v1/account \ -H "Authorization: Bearer qr3_sk_..."Cosa succede:
- Tutti i QR Code vengono eliminati in modo logico (archiviati)
- Tutti i record delle scansioni vengono eliminati definitivamente (PII)
- Tutte le chiavi API vengono revocate
- La cache KV viene invalidata
Gestione dei consensi
GET /v1/account/privacy/consents — Recupera i consensi attuali.
POST /v1/account/privacy/consents — Aggiorna i consensi.
# Aktuelle Einwilligungen abrufencurl https://qr3.app/v1/account/privacy/consents \ -H "Authorization: Bearer qr3_sk_..."
# Marketing-E-Mails deaktivierencurl -X POST https://qr3.app/v1/account/privacy/consents \ -H "Authorization: Bearer qr3_sk_..." \ -H "Content-Type: application/json" \ -d '{ "marketing_emails": false, "analytics": true, "product_updates": true }'Campi di consenso:
| Campo | Predefinito | Descrizione |
|---|---|---|
marketing_emails | false | Newsletter ed e-mail promozionali |
analytics | true | Statistiche di utilizzo aggregate |
product_updates | true | Novità sui prodotti e changelog |
Implementazione tecnica del GDPR
Anonimizzazione dell’IP (Art. 25 GDPR)
HTTP Request → Cloudflare Edge Worker ↓CF-Connecting-IP Header → SHA-256(IP + täglicher Salt) ↓ip_hash (nicht reversibel) → D1 Datenbank ↓Original-IP wird NIEMALS gespeichertIl salt ruota quotidianamente a mezzanotte UTC. Di conseguenza, anche conoscendo il salt, non è possibile correlare gli IP tra giorni diversi.
Conservazione dei dati (automatizzata)
Un cron job eseguito quotidianamente (purgeOldScans) elimina i dati delle scansioni dopo il periodo previsto dal piano:
| Piano | Conservazione |
|---|---|
| Free | 7 giorni |
| Pro | 90 giorni |
| Business / Agency | 1 anno |
| Enterprise | Personalizzato (SLA) |
DPA dei sub-responsabili
Cloudflare, Inc. tratta i dati in qualità di responsabile del trattamento. La DPA è disponibile all’indirizzo cloudflare.com/cloudflare-customer-dpa.
Cloudflare tratta i dati su server dell’UE (Francoforte). Sono in vigore le clausole contrattuali standard (SCC) ai sensi dell’Art. 46 GDPR.
Contatti
- Responsabile della protezione dei dati (DPO): [email protected]
- Accordo sul trattamento dei dati (DPA): [email protected] (su richiesta)
- Informativa sulla privacy: Informativa sulla privacy