Zum Hauptinhalt springen

Wie man Nutzerdaten in Capacitor-Anwendungen handhabt

Lernen Sie effektive Strategien zum Handhaben von Nutzerdaten in mobilen Anwendungen, mit Schwerpunkt auf Sicherheit, Einhaltung und Datenmanagement-Grundsätze.

Martin Donadieu

Martin Donadieu

Inhaltsmarketer

Wie man Nutzerdaten in Capacitor-Anwendungen handhabt

Die Handhabung von Nutzerdaten in Capacitor- Anwendungen erfordert eine sichere Speicherung, klare Aufbewahrungsrichtlinien und die Einhaltung von Datenschutzgesetzen wie DSGVO und CCPA. Diese Anleitung erklärt, wie man die Datenerfassung minimieren, sensitive Informationen sicher speichern und die Berechtigungen effektiv verwalten kann. Hier ist ein kurzer Überblick:

  • Datenerfassung minimieren: Sollten nur die für bestimmte App-Funktionen erforderlichen Daten gesammelt werden.
  • Sichere Speicherung: Verwenden Sie Werkzeuge wie das @capacitor/secure-storage Plugin für Verschlüsselung.
  • Datenlöschung: Automatisieren Sie die Löschung auf der Grundlage definer Zeitlimits.
  • Benutzerrechte: Aktivieren Sie Benutzer, um auf, zu löschen oder ihr Daten auszudrucken.
  • Zugriffsmanagement: Fordern Sie Rechte im Kontext an und bieten Alternativen für abgelehnte Anfragen.
  • OTA-Updates: Stellen Sie sicher, dass sichere Übertragungen über das Internet mit Werkzeugen wie Capgo.

Wie Sie Ionic verwenden Capacitor Sichere Speicherung

Capacitor Framework Dokumentationswebsite

Datenerfassung reduzieren

Ein strukturierter Ansatz bei der Überprüfung, Planung und Verwaltung der Datenerfassung ist entscheidend, um mit den Datenschutzvorschriften im Einklang zu bleiben. Durch die Nutzung der in Capacitor integrierten Werkzeuge zur Minimierung der Datenerfassung können Sie praktische Schritte unternehmen, um die Datenpraktiken Ihrer App zu verbessern.

Datenerfassungs-Überprüfung

Beginnen Sie damit, wie Daten durch Ihre App fließen. Verwenden Sie Werkzeuge wie Datenlinienvisualisierer, um Bereiche zu identifizieren, in denen unnötige Daten gesammelt werden könnten. Software zur Datenschutz-Impact-Assessment (PIA) kann Ihnen dabei helfen, zu beurteilen, ob jede Datenmenge tatsächlich benötigt wird. Hier ist eine Auflistung der Bereiche, auf die Sie sich konzentrieren sollten:

DatenartÜberprüfungs-SchwerpunktMaßnahmen
BenutzereingabenFeldern und ValidierungEntfernen Sie Felder, die nicht benötigt werden
API AufrufeAnforderungs-/AntwortdatenFiltern Sie zusätzliche Datenfelder heraus
SpeicherungGespeicherte und persistente DatenSpeicherplatznutzung optimieren
AnalytikVerwendungsnachverfolgungNur wesentliche Metriken behalten

Zielsetzungen für die Datenerfassung

Seien Sie transparent über die Gründe, warum Sie jede Datenpunkte sammeln. Jeder Datenpunkt sollte einem bestimmten Zweck dienen. Zum Beispiel:

// Purpose-driven data collection example
const userPreferences = {
  location: "Used for local weather updates",
  notification: "Needed for sending alerts"
};

Wenn Ihre App eine Wetterfunktion hat, könnte sie nur eine Postleitzahl code anstelle einer vollständigen Adresse benötigen. Diese Vorgehensweise sichert sich, dass Sie nur die erforderlichen Informationen für die grundlegenden Anwendungsfeatures sammeln.[1][5].

Daten-Eingabe-Kontrollen

Verwenden Sie Validierungstools, um die Menge der durch Formulare und API-Anrufe gesammelten Daten zu limitieren. Combine client-seitige Validierung mit server-seitiger Verifizierung, um diese Grenzen effektiv durchzusetzen.

Integrieren Sie Capacitor's Sicherheitsfunktionen, um diese Kontrollen zu verbessern:

  • Verwenden Sie Dropdown-Menüs anstelle von freitextfeldern, wo immer möglich.
  • Setzen Sie Charaktergrenzen für Texteingabefelder.

Planen Sie quartalsweise Audits mit automatisierten Entdeckungstools, um sicherzustellen, dass Ihre Daten-Sammlungspraktiken effizient und mit der beabsichtigten Funktionalität Ihrer App übereinstimmen.

Daten-Sicherheit und -Speicherung

Sobald Sie Ihre Daten-Sammlungsgrenzen definiert haben, ist es entscheidend, Maßnahmen zu ergreifen, um Benutzerinformationen zu schützen und sich an Daten-Minimierungsprinzipien zu halten.

Einrichten von sicheren Speicher

Die @capacitor/secure-storage Das Plugin verwendet integrierte Sicherheitsfunktionen wie iOS Keychain und Android Keystore, um sensible Daten zu schützen. [1].

import { SecureStorage } from '@capacitor/secure-storage';

// Store sensitive data
await SecureStorage.set({
  key: 'authToken',
  value: 'user-specific-token'
});

// Retrieve stored data
const { value } = await SecureStorage.get({ key: 'authToken' });

Datenverschlüsselungsmethoden

Die Implementierung einer Client-Seitigen Verschlüsselung ist ein weiterer Schutzschirm. Bibliotheken wie CryptoJS können dabei helfen, sensible Informationen zu verschlüsseln:

// Basic encryption/decryption implementation
const encryptData = (data: string, key: string): string => {
  return CryptoJS.AES.encrypt(data, key).toString();
};

Das regelmäßige Rotieren von Verschlüsselungsschlüsseln ist eine intelligente Möglichkeit, die Sicherheit zu verbessern. So bleibt das gesamte Datenbestand sicher, selbst wenn ein Schlüssel kompromittiert wird. [2].

Vergleich von Speicheroptionen

Die Auswahl der richtigen Speichersolution hängt von der Sensibilität der Daten ab. Hier ist ein schneller Vergleich:

FunktionSichere SpeicherungLokale Speicherung
SicherheitsstufeHoch (verschlüsselt)Grundlegend
Zu empfehlenTokens, PasswörterNicht-sensitive Einstellungen
LeistungLangsamer (aufgrund der Verschlüsselung)Schneller Zugriff

Der sichere Speicher API ist eine solide Wahl für die Speicherung kritischer Informationen wie Authentifizierungstoken und persönlichen Benutzerdaten [1][4]. Seine Verschlüsselungsfähigkeiten passen auch zu den Aufbewahrungsrichtlinien, sodass kontrollierter Zugriff auf Daten innerhalb von festgelegten Zeitrahmen möglich ist [2].

sbb-itb-f9944d2

Datenlager-Zeitlimits

Durch die Festlegung von Datenlager-Richtlinien kann man sich an den Grundsätzen der Datenminimierung orientieren, um sicherzustellen, dass Informationen nicht länger aufbewahrt werden, als notwendig.

Speicherzeitregeln

Verschiedene Arten von Benutzerdaten sollten aufgrund ihres Zwecks und ihrer Sensibilität definierte Aufbewahrungsfristen haben. Hier ist ein vorgeschlagenes Framework zur Verwaltung der Datenlagerung in Capacitor-Anwendungen:

DatenartAufbewahrungszeitraumBegründung
Kundenkonto-DatenBis zur Konto-Löschung oder 2 Jahren InaktivitätFür accountbezogene Operationen erforderlich
Transaktionsprotokolle7 JahreKongruenz mit Finanzvorschriften
Analyse-Daten90 Tage (anonymisiert), 1 Jahr (Löschung)Unterstützt Verbesserungen von Funktionen
Marketing-EinstellungenBis zum Widerruf oder Löschung des KontosEinhaltung von Zustimmungserfordernissen

Hier ist ein Beispiel dafür, wie Daten mit einer Ablaufzeit programmatisch gespeichert werden können:

async function storeDataWithExpiration(key: string, value: any, retentionDays: number) {
  const item = {
    value: value,
    expiration: Date.now() + (retentionDays * 24 * 60 * 60 * 1000)
  };
  await Preferences.set({ key, value: JSON.stringify(item) });
}

Automatische Löschung von Daten

Die Automatisierung von Datenreinigungen kann die Einhaltung von Vorschriften erleichtern und die manuelle Intervention reduzieren. Capacitor's Hintergrund-Abfrage-Funktion ist ein nützliches Werkzeug für dies:

import { BackgroundFetch } from '@capacitor/background-fetch';

BackgroundFetch.registerTask({
  taskId: 'data-cleanup',
  delay: 3600000,
  periodic: true,
  requiresNetworkConnectivity: false
}, async () => {
  await cleanExpiredData();
  return BackgroundFetch.Result.NewData;
});

Wenn Sie SQLite für den Speicher verwenden, können Sie Trigger einrichten, um veraltete Datensätze automatisch zu löschen: __CAPGO_KEEP_0__ Benutzerdatenentfernungsoptionen

CREATE TRIGGER remove_expired_data
AFTER INSERT ON user_data
BEGIN
  DELETE FROM user_data 
  WHERE expiration_date < CURRENT_TIMESTAMP;
END;

Benutzerdaten zu verwalten, ist entscheidend. Hier sind zwei wichtige Funktionen, die Sie implementieren können:

Spezifische Daten löschen

  • : Zulassen, dass Benutzer bestimmte Datentypen, die mit ihrem Account verbunden sind, löschen.Benutzerdaten exportieren
async function deleteSpecificData(userId: string, dataType: string) {
  await Preferences.remove({ key: `${userId}_${dataType}` });

  if (db) {
    await db.run(
      'DELETE FROM user_data WHERE user_id = ? AND data_type = ?',
      [userId, dataType]
    );
  }
}
  • : Benutzern ermöglichen, ihre gespeicherten Daten in einer strukturierten Form herunterzuladen.Die französische Datenschutzbehörde
async function exportUserData(userId: string) {
  // Gathers all user data for export
  const userData = await collectUserData(userId);
  return JSON.stringify(userData);
}

CNIL hält fest, dass sich die Aufbewahrungsfristen an die Kernfunktion des Apps anpassen müssen. protectedTokens [3]. Diese Grundsätze sind insbesondere für Capacitor-App-Entwickler von Bedeutung und sollten Ihre Datensicherheitsstrategie leiten.

App-Berechtigungssteuerung

Handling app permissions carefully is key to safeguarding user data while ensuring your app functions as intended. By managing permissions properly, you can limit access to only the device features your app truly needs. Capacitor’s Permissions API offers a unified approach to managing permissions on both iOS and Android.

Schritte zur Anforderung von Berechtigungen

Stellen Sie sicher, dass die von Ihnen angeforderten Berechtigungen mit den Ziele Ihrer App zur Datensammlung übereinstimmen. Hier ist ein Beispiel für die Implementierung der Anforderung von Berechtigungen in einer Capacitor-App:

import { Permissions } from '@capacitor/core';

const permissionHandler = async (permissionType: string) => {
  const status = await Permissions.query({ name: permissionType });

  if (status.state === 'granted') {
    return true;
  }

  const shouldProceed = await showExplanationDialog(
    `We need ${permissionType} access to provide core functionality`
  );

  if (shouldProceed) {
    const result = await Permissions.request({ name: permissionType });
    return result.state === 'granted';
  }

  return false;
};

Verwaltung abgelehnter Berechtigungen

Wenn ein Benutzer eine Anforderung von Berechtigungen ablehnt, bieten Sie klare Alternativen und Anweisungen an. Hier ist ein Beispiel:

const handleDeniedPermission = async (permissionType: string) => {
  const status = await Permissions.query({ name: permissionType });

  if (status.state === 'denied') {
    const alternatives = {
      camera: 'manual photo upload',
      location: 'manual address entry',
      notifications: 'in-app message center'
    };

    showAlternativeFeature(alternatives[permissionType]);

    if (status.canOpenSettings) {
      offerSettingsRedirect();
    }
  }
};

Zeitpunkt der Anforderung von Berechtigungen

Wenn Sie Berechtigungen anfordern, spielt der Zeitpunkt eine Rolle. Eine strategische Zeitplanung kann die Akzeptanzraten der Benutzer erheblich verbessern. Hier ist eine schnelle Übersicht über die Zeitstrategien:

ZeitstrategieBeste Verwendungsmöglichkeit
Just-in-TimeFür bestimmte Funktionen, wenn erforderlich
KontextbezogenFür nicht kritische Funktionen
Erster StartFür Kernfunktionen, die vorher erforderlich sind
VerspätetFür optionalen Funktionen später im Benutzerjourney

Beispielsweise können Sie die Zugriffsberechtigung auf die Kamera nur dann anfordern, wenn der Benutzer eine Aktion wie das Aufnehmen eines Fotos initiiert:

const captureImage = async () => {
  const userStartedCapture = true;

  if (userStartedCapture) {
    const granted = await permissionHandler('camera');

    if (granted) {
      await startCamera();
    } else {
      showUploadOption();
    }
  }
};

Kontextbezogene Anfragen wie diese können die Akzeptanzraten um 50% gegenüber vorherigen Anfragen erhöhen [2]Um eine glatte Erfahrung zu gewährleisten, halten Sie einen Zustandsverfolger für die Berechtigungen, der die Benutzerentscheidungen über Sitzungen hinweg speichert

Nachdem die Berechtigungen gehandhabt wurden, können Sie sich auf die Sicherstellung von Updates konzentrieren, insbesondere für drahtlose (OTA) Bereitstellungen

Sicherheit bei OTA-Updates

Um die Datenintegrität während der Anwendungsaktualisierungen zu gewährleisten, ist es wichtig, sichere OTA-Update-Prozesse (Over-The-Air) zu verwenden. Diese Updates helfen dabei, unautorisierte Änderungen an der Anwendung __CAPGO_KEEP_0__ zu verhindern, die sonst die Grenzen für die Datenverarbeitung umgehen könnten. Update-Paket-SignierungDie Signierung von Update-Paketen ist ein kritischer Schritt zur Abwehr unautorisierter code-Änderungen. Hier sind einige wichtige Maßnahmen, um OTA-Updates zu sichern:

Sicherheitsmaßnahme

Signing update packages is a critical step in protecting against unauthorized code changes. Here are some key measures to secure OTA updates:

InhaltsschutzAES-Verschlüsselung
LieferungssicherheitHTTPS mit Zertifikatspinning
Update-IntegritätUpdate Package Signing
Signing update packages is a critical step in protecting against unauthorized __CAPGO_KEEP_0__ changes.Hash-Verifizierung
VersionssicherheitSignierte Versionsnummern
FehlerwiederherstellungEchtzeit-Rollback-Fähigkeit

Capgo Update-System

Capgo Live-Update-Dashboard-Interface

Capgo vereinfacht sichere OTA-Updates für Capacitor-Apps, indem es automatisierte Sicherheitsfunktionen bietet. Hier ist ein Beispiel dafür, wie man Capgo's Update-System in seiner App verwendet:

import { CapacitorUpdater } from '@capgo/capacitor-updater';

const secureUpdate = async () => {
  try {
    const update = await CapacitorUpdater.download({
      version: 'latest',
      validateSignature: true
    });
    if (update.status === 'success') {
      await CapacitorUpdater.set(update);
    }
  } catch (error) {
    await CapacitorUpdater.rollback();
  }
};

Mit dieser Methode werden Updates validiert und sicher, mit Wiederherstellungsoptionen im Falle eines Fehlers.

Zustimmung zur App-Store-Politik

Die Einhaltung der Richtlinien der App-Stores ist für OTA-Updates erforderlich[1][6][7]Jede Plattform hat spezifische Anforderungen, um sicherzustellen, dass Updates mit ihren Datenschutz- und Sicherheitsrichtlinien übereinstimmen:

PlattformZuverlässigkeitsanforderungen
iOSNur JavaScript- oder Asset-Updates
AndroidBenutzereinwilligung ist erforderlich
BeideSicherheitsprüfungen und ordnungsgemäße Dokumentation

Hier ist ein Beispiel für die Implementierung von store-konformen Updates:

const compliantUpdate = async () => {
  const userConsent = await requestUpdateConsent();
  if (userConsent) {
    await CapacitorUpdater.setUpdateConfig({
      type: 'assets-only',
      scope: 'ui-updates' // Updates limited to UI components
    });
  }
};

const preventDowngrade = async (newVersion, currentVersion) => {
  const versions = await CapacitorUpdater.getVersions();
  if (versions.current.buildNumber > newVersion.buildNumber) {
    throw new Error('Downgrade attempt detected');
  }
};

Zusammenfassung

Hauptergebnisse

Effektives Umgang mit Benutzerdaten beinhaltet die Kombination dieser Kernstrategien:

  • Erheben Sie nur die notwendigen Daten.
  • Verwenden Sie Plattform-spezifische Verschlüsselung, um sie zu schützen.
  • Automatisieren Sie Fristen für die Datenlöschung.
  • Konfigurieren Sie detaillierte Berechtigungssteuerungen.

Diese Schritte arbeiten zusammen, um die Einhaltung von der Zeitpunkt der Datenerfassung bis zur automatischen Löschung sicherzustellen.

Schritte zur Umsetzung

Um diese Strategien in die Tat umzusetzen:

  • Überprüfen Sie Ihre Datenströme mithilfe der in Abschnitt 2 diskutierten Methoden.
  • Stärken Sie die Sicherheit der Datenspeicherung, wie in Abschnitt 3 beschrieben.
  • Konfigurieren Sie automatisierte Löschvorgänge auf der Grundlage von Abschnitt 4.
  • Etablizieren und durchsetzen Sie Berechtigungssteuerungen, wie in Abschnitt 5 detailliert beschrieben.

Leveraging Capgo

Für Teams, die OTA-Updates verwalten, bietet Capgo integrierte Sicherheitstools, die sich mit diesen Bemühungen decken:

  • End-to-End-Verschlüsselung um Update-Pakete zu sichern.
  • Echtzeit-Monitoring um potenzielle Sicherheitsbedrohungen schnell anzugehen.

Weitermachen Sie von Wie Capacitor-Apps Benutzerdaten handhaben

Wenn Sie "Wie __CAPGO_KEEP_0__-Apps Benutzerdaten handhaben" verwenden How to Handle User Data in Capacitor Apps Verschlüsselung für die Implementierungsdetails in Verschlüsselung Wenn Sie "Wie __CAPGO_KEEP_0__-Apps Benutzerdaten handhaben" verwenden Zuverlässigkeit für die Implementierungsdetails in Zuverlässigkeit, Capgo Sicherheits-Scanner für den Produktworkflow in Capgo Sicherheits-Scanner, Capgo Sicherheit für den Produktworkflow in Capgo Sicherheit, und Capgo Vertrauenszentrum für den Produktworkflow in Capgo Vertrauenszentrum.

Echtzeit-Updates für Capacitor-Apps

Wenn ein Fehler im Weblayer live ist, liefern Sie die Reparatur über Capgo anstatt Tage auf die Genehmigung der App-Stores zu warten. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Verfahren bleiben.

Los geht's

Neueste Beiträge aus unserem Blog

Capgo bietet Ihnen die besten Einblicke, um eine wirklich professionelle mobile App zu erstellen.