GDPR e privacy
Privacy by Design
qr3.app è progettato fin dall’inizio per essere conforme al GDPR:
- Pseudonimizzazione dell’IP — Gli indirizzi IP vengono immediatamente convertiti in pseudonimi HMAC-SHA-256 del giorno UTC nell’Edge Worker. L’IP originale non viene mai memorizzato; lo pseudonimo resta un dato personale.
- 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
Pseudonimizzazione dell’IP (Art. 25 GDPR)
Richiesta HTTP → Cloudflare Edge Worker ↓Intestazione CF-Connecting-IP → HMAC-SHA-256(IP_HASH_SALT, scopo, giorno UTC, IP) ↓ip_hash (pseudonimo giornaliero) → database D1 ↓L'IP originale non viene mai memorizzatoIP_HASH_SALT è un segreto maestro di lunga durata; lo scopo e il giorno UTC derivano automaticamente pseudonimi giornalieri separati. Gli pseudonimi di giorni UTC diversi non sono direttamente uguali, ma chi possiede il segreto può ricalcolare un candidato IP noto per un giorno specifico. Non sono usati né un salt giornaliero in KV né una rotazione manuale quotidiana.
Conservazione dei dati (automatizzata)
| Piano | Conservazione |
|---|---|
| Tutti i piani | 90 giorni |
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