Zum Inhalt springen

DSGVO & Datenschutz

Datenschutz-by-Design

qr3.app ist von Grund auf DSGVO-konform gebaut:

  • IP-Anonymisierung — IP-Adressen werden im Edge-Worker sofort zu SHA-256-Hashes (mit täglich rotierendem Salt) umgewandelt. Die Original-IP erreicht nie die Datenbank.
  • Retention-Policies — Scan-Daten werden automatisch nach Plan-abhängiger Frist gelöscht (Free: 7 Tage, Pro: 90 Tage, Business: 1 Jahr).
  • Datenminimierung — Es werden nur die für den Betrieb notwendigen Daten erfasst.

Privacy-API

Datenzusammenfassung (Art. 15 DSGVO)

GET /v1/account/privacy — Gibt eine Übersicht aller gespeicherten Daten zurück.

Terminal-Fenster
curl https://qr3.app/v1/account/privacy \
-H "Authorization: Bearer qr3_sk_..."

Response:

{
"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" }
]
}
}
}

Datenexport (Art. 20 DSGVO — Datenportabilität)

GET /v1/account/export — Lädt alle Daten als JSON-Datei herunter.

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

Der Export enthält:

  • Alle QR-Codes (inkl. gelöschter)
  • Aggregierte Scan-Statistiken (keine rohen IP-Hashes)
  • Erstellungs- und Änderungszeitstempel

Konto löschen (Art. 17 DSGVO — Recht auf Vergessenwerden)

DELETE /v1/accountUnwiderrufliche Löschung aller Daten.

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

Was passiert:

  1. Alle QR-Codes werden soft-deleted (archiviert)
  2. Alle Scan-Records werden hart gelöscht (PII)
  3. Alle API-Keys werden widerrufen
  4. KV-Cache wird invalidiert

Einwilligungen verwalten

GET /v1/account/privacy/consents — Aktuelle Einwilligungen abrufen.

POST /v1/account/privacy/consents — Einwilligungen aktualisieren.

Terminal-Fenster
# 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 }'

Einwilligungs-Felder:

FeldStandardBeschreibung
marketing_emailsfalseNewsletter und Werbe-E-Mails
analyticstrueAggregierte Nutzungsstatistiken
product_updatestrueProduktneuheiten und Changelogs

Technische DSGVO-Implementierung

IP-Anonymisierung (Art. 25 DSGVO)

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

Der Salt rotiert täglich um Mitternacht UTC. Dadurch ist selbst bei Kenntnis des Salts keine tagesübergreifende IP-Korrelation möglich.

Daten-Retention (automatisiert)

Ein täglich ausgeführter Cron-Job (purgeOldScans) löscht Scan-Daten nach Plan-abhängiger Frist:

PlanRetention
Free7 Tage
Pro90 Tage
Business / Agency1 Jahr
EnterpriseCustom (SLA)

Sub-Processor DPA

Cloudflare, Inc. verarbeitet Daten als Auftragsverarbeiter. Die DPA ist unter cloudflare.com/cloudflare-customer-dpa verfügbar.

Cloudflare verarbeitet Daten auf EU-Servern (Frankfurt). Standard Contractual Clauses (SCCs) gemäß Art. 46 DSGVO sind in Kraft.


Kontakt