Zum Hauptinhalt springen

Wie man Nutzerdaten in Capacitor-Anwendungen handhabt

Erwerben Sie effektive Strategien zur Handhabung von Nutzerdaten in mobilen Anwendungen, mit Schwerpunkt auf Sicherheit, Einhaltung und Datenmanagement-Grundsätze.

Wie man Nutzerdaten in Capacitor-Anwendungen handhabt

Die Handhabung von Nutzerdaten in Capacitor Apps benötigen sichere Speicherung, klare Aufbewahrungsrichtlinien und Einhaltung von Datenschutzgesetzen wie GDPR und CCPA. Dieses Leitfaden erklärt, wie Sie die Datenerfassung minimieren, sensible Informationen sicher speichern und die Berechtigungen effektiv verwalten können. Hier ist eine kurze Übersicht:

  • Datenminimierung: Sammeln Sie nur das notwendige für bestimmte App-Funktionen.
  • 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 definerter Zeitgrenzen.
  • Benutzerrechte: Ermöglichen Sie Benutzern, auf ihr Daten zuzugreifen, zu löschen oder zu exportieren.
  • Zugriffsrechte: Anfragen Sie Rechte im Kontext an und bieten Sie Alternativen für abgelehnte Anfragen.
  • OTA-Updates: Stellen Sie sicher, dass sichere Über-der-Luft-Updates mit Tools wie Capgo.

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.

Überprüfung der Datenerfassung

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. Datenschutz-Impact-Assessment-Software kann Ihnen dabei helfen, zu beurteilen, ob jede einzelne Datenmenge tatsächlich benötigt wird. Hier ist eine Auflistung der Bereiche, auf die Sie sich konzentrieren sollten:

Datenart Überprüfungsschwerpunkt Aufgaben
Eingaben des Benutzers Formulare und Validierung Entfernen Sie Felder, die nicht benötigt werden
API-Aufrufe Anforderungs-/Antwort-Payloads Filtern Sie zusätzliche Datenfelder aus
Speicherung Kontext: Produktseite für native Cloud-Build. Rolle: Kurzer Benutzeroberflächentext oder Navigationspunkt. Gesehen in: Seite native-build.astro. Nachrichtenschlüssel `native_build_v2_trust_stor_lbl` (Native Build V2 Trust Stor Lbl). | Produktseite für Enterprise-Produkt/Preisliste. Rolle: Kurzer Benutzeroberflächentext oder Navigationspunkt. Gesehen in: Seite enterprise.astro. Nachrichtenschlüssel `enterprise_plugins_legacy_storage` (Enterprise Plugins Legacy Storage). Zugriff auf Cached und persistente Daten
Speicherplatzoptimierung Analyse Kontext: Capgo-Marketingwebsite. Rolle: Kurzer Benutzeroberflächentext oder Navigationspunkt. Nachrichtenschlüssel `analytics` (Analyse).

Verwendungsnachverfolgung

Erhalten Sie nur die wichtigsten Metriken

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

If your app has a weather feature, it might only require a zip code rather than a full address. This approach ensures you’re gathering only the information necessary for core app functions[1][5].

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

Wenn Ihre App eine Wetterfunktion hat, benötigt sie möglicherweise nur eine Postleitzahl API anstatt eine vollständige Adresse. Diese Vorgehensweise sichert Ihnen, dass Sie nur die erforderlichen Informationen für die Kernfunktionen der App sammeln.

Inkorporieren 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 Datenverarbeitungspraktiken effizient und mit der vorgesehenen Funktionalität Ihres Apps übereinstimmen.

Daten-Sicherheit und -Speicherung

Als Nächstes müssen Sie Maßnahmen implementieren, um Benutzerinformationen zu schützen, während Sie an den Grundsätzen der Datenminimierung festhalten.

Einrichten von sicheren Speicher

Der @capacitor/secure-storage Plugin verwendet integrierte Sicherheitsfunktionen wie iOS-Schlüsselbund und Android-Schlüsselkasten, um sensible Daten zu schützen [1]. Für größere strukturierte Datensätze @capgo/capacitor-data-storage-sqlite __CAPGO_KEEP_0__/__CAPGO_KEEP_1__-Daten-Speicherung-SQLite @capgo/capacitor-persistente-Konto kann das Kontozustand über Wiederinstallierungen aufrechterhalten. @capgo/capacitor-Datenschutzschirm verdeckt sensitive Benutzeroberflächen im App-Wechsler und im Vorschau-Bildschirm der zuletzt geöffneten Apps.

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' });

Verschlüsselungsmethoden für Daten

Die Hinzufügung einer Client-Seitensicherheit ist ein weiterer Schutzschicht. Bibliotheken wie CryptoJS können helfen, sensitive Informationen zu verschlüsseln:

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

Die regelmäßige Rotation von Verschlüsselungsschlüsseln ist eine intelligente Möglichkeit, die Sicherheit zu verbessern. Dies stellt sicher, dass selbst wenn ein Schlüssel kompromittiert wird, der Rest der Daten sicher bleibt [2].

Vergleich von Speicheroptionen

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

Funktion Sichere Speicherung lokale Speicherung
Sicherheitsstufe Hoch (verschlüsselt) Grundlegend
Am besten geeignet für Tokens, Passwörter Unsensibele Einstellungen
Leistung context: Homepage, Problem/Lösung Abschnitt. Rolle: Abschnitt oder Seiteüberschrift. Gesehen in: Seite premium-support.astro. Nachrichten Schlüssel `ps_help_performance_title` (Ps Help Performance Title). Langsamer (wegen Verschlüsselung)

The Secure Storage API is a solid choice for storing critical information like authentication tokens and personal user data [1][4]. Seine Verschlüsselungsfähigkeiten passen sich auch mit den Aufbewahrungsrichtlinien ab, wodurch kontrollierter Zugriff auf Daten innerhalb bestimmter Zeitrahmen ermöglicht wird [2].

sbb-itb-f9944d2

Datenlagerzeitlimits

Klare Aufbewahrungsrichtlinien setzen helfen, sich mit den Grundsätzen der Datenminimierung zu verbinden, sodass Informationen nicht länger aufbewahrt werden, als notwendig ist

Speicherzeitregeln

Verschiedene Arten von Benutzerdaten sollten aufgrund ihres Zwecks und ihrer Sensibilität definierte Aufbewahrungszeiträume haben Unten ist ein vorgeschlagener Rahmen für die Verwaltung der Aufbewahrung von Daten in Capacitor-Anwendungen:

Datenart Aufbewahrungszeitraum Begründung
Kunden-Daten Bis zur Löschung des Kontos oder 2 Jahren Inaktivität Für die Kontoverwaltung erforderlich
Transaktions-Protokolle 7 Jahre Finanzvorschriften einhalten
Analyse-Daten 90 Tage (anonymisiert), 1 Jahr (Löschung) Unterstützt Funktionserweiterungen
Werbepreferenzen Bis zum Widerruf oder zur Löschung des Kontos Zustimmungsvorschriften einhalten

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 Datenlöschung

Die Automatisierung der Datenreinigung kann die Einhaltung von Vorschriften erleichtern und die manuelle Intervention reduzieren. Capacitors Hintergrundabruf-Funktion ist ein nützliches Werkzeug hierfür:

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 kontext: Seite/Bereich: Capgo-Lösungen-Marketingseite. Rolle: Kurze UI-Schaltfläche oder Navigationspunkt. Gesehen in: Seite Lösungen/cordova-to-capacitor-ai.astro. Nachrichten Schlüssel `solutions_cordova_to_capacitor_ai_row_sqlite` (Lösungen Cordova To Capacitor Ai Row Sqlite).

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

zum Speichern verwenden, können Sie Trigger einrichten, um automatisch gelöschte Daten zu entfernen:

Datenlöschungsoptionen

  • Benutzerdatenlöschung: Erlassen Sie Benutzern die Möglichkeit, bestimmte Datenarten, die mit ihrem Account verbunden sind, zu löschen.
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]
    );
  }
}
  • Datenexport: Aktivieren Sie die Möglichkeit, dass Benutzer ihre gespeicherten Daten in einer strukturierten Form herunterladen können.
async function exportUserData(userId: string) {
  // Gathers all user data for export
  const userData = await collectUserData(userId);
  return JSON.stringify(userData);
}

Die französische Datenschutzbehörde CNIL unterstreicht, dass sich die Aufbewahrungsfristen an die Kernfunktion der App anpassen müssen [3]. Diese Grundsätze sind insbesondere für Capacitor-App-Entwickler von Bedeutung und sollten Ihre Datenaufbewahrungsstrategie 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.

Berechtigungsanforderungs-Schritte

Stellen Sie sicher, dass die von Ihnen angeforderten Berechtigungen mit den Ziele Ihrer App für die Datensammlung übereinstimmen. Hier ist ein Beispiel für die Implementierung von Berechtigungsanforderungen 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 Berechtigungsanforderung 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();
    }
  }
};

Berechtigungsanforderungs-Zeitpunkt

Wann Sie Berechtigungen anfordern, ist wichtig. Eine strategische Zeitplanung kann die Akzeptanzraten der Benutzer erheblich verbessern. Hier ist eine kurze Übersicht über Zeitstrategien:

Zeitstrategie Beste Verwendungsfälle
Zur Laune Für bestimmte Funktionen, wenn erforderlich
Kontextbezogen Für nicht kritische Funktionen
Erster Start Kontextbezogen
Für Kernfunktionen, die vorher erforderlich sind Verspätet

Für optionalen Funktionen später im Benutzerjourney

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

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

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

Beispiel: Sie können die Kamera-Zugriff nur anfordern, wenn der Benutzer eine Aktion wie das Aufnehmen eines Fotos initiiert: [2]. Um eine glatte Erfahrung zu gewährleisten, führen Sie einen Zustandsverfolger für die Berechtigungen ein, der die Entscheidungen des Benutzers über mehrere 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 Integrität der Daten während Anwendungsaktualisierungenzu gewährleisten, ist es unerlässlich, sichere OTA-Update-Prozesse zu verwenden. Diese Updates helfen dabei, unautorisierte Änderungen an der Anwendung code zu verhindern, die sonst die Grenzen für die Datenerfassung umgehen könnten.

Signierung von Update-Paketen

Die Signierung von Update-Paketen ist ein entscheidender Schritt zur Abwehr unautorisierter code-Änderungen. Hier sind einige wichtige Maßnahmen zur Sicherstellung von OTA-Updates:

Sicherheitsmaßnahme Wie es funktioniert
Inhaltsschutz AES-Verschlüsselung
Zuverlässige Lieferung Sicherheit über HTTPS mit Zertifikatspinning
Integrität der Updates Prüfsummenprüfung
Sicherheit der Version Gezeichnete Versionsnummern
Wiederherstellung bei Fehlern Instant-Rollback-Funktion

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 Sie Capgo's Update-System in Ihrer App verwenden können:

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();
  }
};

Diese Vorgehensweise stellt sicher, dass Updates validiert und sicher sind, mit Rollover-Optionen im Falle eines Fehlers.

Speicherungspolitik-Konformität

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

Plattform Konformitätsanforderungen
iOS Nur JavaScript- oder Asset-Updates
Android Benutzereinwilligung muss eingeholt werden
Beide Sicherheitsprü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

Die effektive Verwaltung von Benutzerdaten beinhaltet die Combination dieser Kernstrategien:

  • Sammeln Sie nur die notwendigen Daten.
  • Verwenden Sie Plattform-spezifische Verschlüsselung, um sie zu sichern.
  • Automatisieren Sie Fristen für die Datenspeicherung.
  • Einrichten Sie detaillierte Berechtigungssteuerungen.

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

Schritte zur Implementierung

Um diese Strategien in die Tat umzusetzen:

  • Überprüfen Sie Ihre Datenströme mit den in Abschnitt 2 diskutierten Methoden.
  • Stärken Sie die Speicherungssicherheit wie in Abschnitt 3 beschrieben.
  • Setzen Sie automatisierte Löschvorgänge basierend auf Abschnitt 4 ein.
  • Stellen Sie und durchsetzen Sie die in Abschnitt 5 detaillierten Berechtigungssteuerungen.

Nutzen Sie Capgo

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

  • End-to-End-Verschlüsselung context: Seite/ Bereich: Capgo-Marketing-Website. Rolle: Kurze Benutzeroberflächenebene oder Navigationspunkt. Nachrichtenschlüssel `end_to_end_encryption` (End To End Encryption).
  • um Update-Pakete zu sichern. Echtzeit-Monitoring

Keep going from How to Handle User Data in Capacitor Apps

Fortsetzen Sie von Wie Sie Benutzerdaten in __CAPGO_KEEP_0__-Apps handhaben. Wenn Sie "Wie Sie Benutzerdaten in Capacitor-Apps handhaben" verwenden um Sicherheit und Compliance zu planen, verbinden Sie es mit Verschlüsselung Verschlüsselung Zuverlässigkeit Zuverlässigkeit Capgo Sicherheits-Scanner Capgo Sicherheits-Scanner Capgo Sicherheit Capgo Sicherheit Capgo Vertrauenszentrum Capgo Vertrauenszentrum

Live-Updates für Capacitor-Anwendungen

Wenn ein Bug im Web-Schicht lebt, schicken Sie die Reparatur über Capgo anstatt Tage zu warten, bis die App-Store-Zulassung eingeholt ist. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Prozess bleiben.

Menschliche Unterstützung von Martin

Los geht's jetzt

Neuestes aus unserem Blog

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