Salta ai contenuti

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.

Terminal window
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",
"contact": "[email protected]"
},
"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.

Terminal window
curl https://qr3.app/v1/account/export \
-H "Authorization: Bearer qr3_sk_..." \
-o meine-daten.json

L’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.

Terminal window
curl -X DELETE https://qr3.app/v1/account \
-H "Authorization: Bearer qr3_sk_..."

Cosa succede:

  1. Tutti i QR Code vengono eliminati in modo logico (archiviati)
  2. Tutti i record delle scansioni vengono eliminati definitivamente (PII)
  3. Tutte le chiavi API vengono revocate
  4. 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.

Terminal window
# Aktuelle Einwilligungen abrufen
curl https://qr3.app/v1/account/privacy/consents \
-H "Authorization: Bearer qr3_sk_..."
# Marketing-E-Mails deaktivieren
curl -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:

CampoPredefinitoDescrizione
marketing_emailsfalseNewsletter ed e-mail promozionali
analyticstrueStatistiche di utilizzo aggregate
product_updatestrueNovità 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 gespeichert

Il 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:

PianoConservazione
Free7 giorni
Pro90 giorni
Business / Agency1 anno
EnterprisePersonalizzato (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