Salta ai contenuti

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.

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

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 memorizzato

IP_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)

PianoConservazione
Tutti i piani90 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