Zum Hauptinhalt springen

Wie Sie Nutzerdaten in Capacitor-Apps effektiv handhaben

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

Wie Sie Nutzerdaten in Capacitor-Apps effektiv handhaben

Benutzungsdaten in Capacitor Anwendungen verwalten erfordert sicheren Speicher, klare Aufbewahrungsrichtlinien und Einhaltung von Datenschutzgesetzen wie und CCPA Dieses Leitfaden erklärt, wie Sie die Datenerfassung minimieren, sensible Informationen sicher speichern und die Rechte effektiv verwalten können. Hier ist eine kurze Übersicht:. Datenerfassung minimieren

  • : Sammeln Sie nur, was für bestimmte Anwendungsmerkmale erforderlich ist.Sichere Speicherung
  • : Verwenden Sie Werkzeuge wie das Plugin für Verschlüsselung. @capacitor/secure-storage Secure Storage: Use tools like the __CAPGO_KEEP_0__ for encryption.
  • Datenhaltung: Automatisieren Sie die Löschung auf der Grundlage definerter Zeitgrenzen.
  • Benutzerrechte: Aktivieren Sie Benutzern das Anzeigen, Löschen oder Exportieren ihrer Daten.
  • Zugriffsrechte: Anfordern Sie Rechte im Kontext und bieten Alternativen für abgelehnte Anfragen.
  • OTA-Updates: Stellen Sie sicher, dass sichere Über-Air-Updates mit Tools wie Capgo.

Wie Sie Ionic verwenden Capacitor __CAPGO_KEEP_0__

Capacitor Framework Dokumentation Website

Datenerfassung reduzieren

Ein strukturiertes Vorgehen bei der Überprüfung, Planung und Verwaltung der Datenerfassung ist entscheidend, um mit den Datenschutzvorschriften im Einklang zu bleiben. Durch die Nutzung der im 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. Die Privacy-Impact-Assessment (PIA)-Software kann Ihnen dabei helfen, zu bewerten, ob jede einzelne Datenmenge tatsächlich benötigt wird. Hier ist eine Auflistung der Bereiche, auf die Sie sich konzentrieren sollten:

Datentyp Überprüfungsschwerpunkt Aufgaben
Eingabedaten Formulare und -validierung Felder entfernen, die nicht benötigt werden
API Anrufe Anforderungs-/Antwortdaten Überflüssige Datenfelder ausschalten
Speicherung Kontext: Capgo Builder / native cloud Build-Produktseite. Rolle: Kurzer UI-Label oder Navigationspunkt. Gesehen in: Seite native-build.astro. Nachrichtenschlüssel `native_build_v2_trust_stor_lbl` (Native Build V2 Trust Stor Lbl). | Seite: Enterprise-Produkt/Preisliste. Rolle: Kurzer UI-Label oder Navigationspunkt. Gesehen in: Seite enterprise.astro. Nachrichtenschlüssel `enterprise_plugins_legacy_storage` (Enterprise Plugins Legacy Storage). Gespeicherte und persistente Daten
Speicherplatznutzung optimieren Analyse Kontext: Capgo-Marketingwebsite. Rolle: Kurzer UI-Label oder Navigationspunkt. Nachrichtenschlüssel `analytics` (Analyse).

Benutzungsverfolgung

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].

Einbinden von Datenkontrollen

Verwenden Sie Validierungstools, um die Menge der durch Formulare und API-Aufrufe gesammelten Daten zu begrenzen. Kombinieren Sie die Clientseitige Validierung mit der Serverseitigen Überprüfung, um diese Grenzen effektiv durchzusetzen.

Integrieren Sie die Sicherheitsmerkmale von Capacitor in diese Kontrollen ein:

  • 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 beabsichtigten Funktionalität Ihres Apps übereinstimmen.

Daten-Sicherheit und -Speicherung

Als Nächstes müssen Sie Maßnahmen ergreifen, um Benutzerinformationen zu schützen und gleichzeitig die Grundsätze der Datenminimierung einzuhalten.

Einrichten der sicheren Speicherung

Der @capacitor/secure-storage Plugin verwendet die eingebauten Sicherheitsmerkmale wie iOS Keychain und Android Keystore, um sensible Daten zu schützen. [1]. Für größere strukturierte Datensätze, @capgo/capacitor-Speicherung-in-SQLite bietet verschlüsselte SQLite-Speicherung und @capgo/capacitor-persistente-Kontozustand kann den Zustand des Kontos über Wiederinstallationen aufrechterhalten. @capgo/capacitor-Datenschutzschirm verschleiert sensitive UI in der App-Wechsler und dem Vorschau-Bildschirm für kürzlich geöffnete 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' });

Datenverschlüsselungsmethoden

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

Regelmäßiges Rotieren 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 eine schnelle Vergleichsübersicht:

Funktion Sichere Speicherung Lokale Speicherung
Sicherheitsstufe Hoch (verschlüsselt) Grundlegend
Am besten geeignet für Tokens, Passwörter Nichtsensibel
Leistung Langsamer (wegen der Verschlüsselung) Faster Zugriff

Das sichere Speicher API ist eine solide Wahl für die Speicherung kritischer Informationen wie Authentifizierungstoken und persönlicher Benutzerdaten [1][4]. Seine Verschlüsselungsfähigkeiten passen auch mit den Aufbewahrungsrichtlinien überein, indem sie einen kontrollierten Zugriff auf Daten innerhalb von spezifizierten Zeitrahmen ermöglichen [2].

sbb-itb-f9944d2

Daten Speicher Zeitlimits

Die Festlegung klarer Aufbewahrungsrichtlinien hilft, den Grundsätzen der Datenminimierung zu entsprechen, indem sichergestellt wird, dass Informationen nicht länger als notwendig aufbewahrt werden

Speicher Zeitregeln

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

Daten Typ Aufbewahrungsfrist Begründung
Kundenkundendaten Bis zur Löschung des Kontos oder 2 Jahren Inaktivität Für die Durchführung von Kontozugriffen erforderlich
Transaktionsprotokolle 7 Jahre Einhaltung von Finanzvorschriften
Analyse-Daten 90 Tage (anonymisiert), 1 Jahr (Löschung) Unterstützung von Funktionserweiterungen
Marketingvorlieben bis zum Widerruf oder zur Konto-Löschung erfüllt die Einwilligungserfordernisse

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

Die Automatisierung der Datenreinigung kann die Einhaltung von Vorschriften erleichtern und die manuelle Intervention reduzieren. Capacitor's 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 Benutzeroberflächeneinheit oder Navigationselement. Gesehen in: Seite Lösungen/cordova-to-capacitor-ai.astro. Nachrichtenschlü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;

zur Speicherung können Sie Trigger einrichten, um automatisch gelöschte Records zu löschen:

Datenlöschungsoptionen für Benutzer

  • Bereitstellung von Werkzeugen für Benutzer, um ihre Daten zu verwalten, ist unerlässlich. Hier sind zwei wichtige Funktionen, die Sie implementieren können:Daten spezifisch 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]
    );
  }
}
  • Benutzerdaten exportieren: Ermöglichen Sie es den Benutzern, ihre gespeicherten Daten in einer strukturierten Form herunterzuladen.
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 Höhere Aufbewahrungsfristen müssen sich an die Kernfunktion der App anpassen [3]. Diese Grundsätze sind insbesondere für Capacitor-App-Entwickler relevant und sollten Ihre Aufbewahrungsstrategie leiten.

Anwendungsrechte-Steuerung

Die sorgfältige Behandlung von Anwendungsrechten ist entscheidend für die Sicherung von Benutzerdaten und die Gewährleistung, dass die App wie vorgesehen funktioniert. Durch die ordnungsgemäße Verwaltung von Rechten können Sie den Zugriff auf nur die Gerätefunktionen einschränken, die Ihre App tatsächlich benötigt. Capacitor’s Permissions API bietet eine einheitliche Ansicht zur Verwaltung von Rechten auf beiden iOS- und Android-Geräten.

Schritte zur Anfrage von Rechten

Stellen Sie sicher, dass die Rechte, die Sie anfragen, mit den Datenverteilungszielen Ihrer App übereinstimmen. Hier ist ein Beispiel für die Implementierung von Rechtsanfragen 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 Rechte

Wenn ein Benutzer eine Rechtsanfrage 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();
    }
  }
};

Zeitpunktliche Anfragen stellen

Wenn Sie um Erlaubnisse bitten, spielt der Zeitpunkt eine Rolle. Eine strategische Zeitplanung kann die Akzeptanzraten der Benutzer erheblich verbessern. Hier ist eine kurze Übersicht über die Zeitstrategien:

Zeitstrategie Beste Verwendung
Just-in-Time Für bestimmte Funktionen, wenn sie benötigt werden
Kontextuell Für nicht-kritische Funktionen
Erstes Starten Für Kernfunktionen, die vorher erforderlich sind
Verspätet Für optionalen Funktionen später im Benutzerjourney

Zum Beispiel können Sie die Zugriffsberechtigung auf die Kamera nur dann anfordern, wenn der Benutzer eine Aktion wie das Aufnehmen eines Fotos auslöst:

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

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

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

Durch kontextbezogene Anfragen wie diese können die Zustimmungsquoten um 50 % gegenüber vorherigen Anfragen gesteigert werden. [2]Um eine glatte Erfahrung zu gewährleisten, sollten Sie einen Zustandsverfolger für die Berechtigungen einrichten, der die Entscheidungen des Benutzers über mehrere Sitzungen hinweg speichert.

Wenn die Berechtigungen gehandhabt sind, 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 der 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.

Signieren von Update-Paketen

Das Signieren von Update-Paketen ist ein entscheidender Schritt zur Sicherstellung gegen unautorisierte code-Änderungen. Hier sind einige wichtige Maßnahmen zur Sicherstellung von OTA-Updates:

Sicherheitsmaßnahme Wie es funktioniert
Inhaltsschutz AES-Verschlüsselung
Lieferungssicherheit HTTPS mit Zertifikatspinning
Update-Integrität Hash-Verifizierung
Versionssicherheit Signierte Versionsnummern
Fehlschlagrückkehr __CAPGO_KEEP_0__

Capgo Update-System

Capgo Live Update Dashboard Interface

Capgo vereinfacht sichere OTA-Updates für Capacitor-Apps, indem sie automatisierte Sicherheitsfunktionen bietet. Hier ist ein Beispiel dafür, wie Sie das Update-System von Capgo 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();
  }
};

Dieser Ansatz stellt sicher, dass Updates validiert und sicher sind, mit Rücksetzoptionen im Falle eines Fehlers.

Speicherpolitik-Konformität

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

Plattform Konformitätsanforderungen
iOS Nur JavaScript- oder Asset-Updates
Android Benutzereinwilligung ist erforderlich
Beide Sicherheitsprüfungen und angemessene 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

Das effektive Handhaben von Benutzerdaten beinhaltet die Combination dieser Kernstrategien:

  • Erheben Sie nur die notwendigen Daten.
  • Verwenden Sie Plattform-spezifische Verschlüsselung, um sie zu schützen.
  • Automatisieren Sie die Fristen für die Datenspeicherung.
  • Einstellen 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 Datenflüsse mit den in Abschnitt 2 diskutierten Methoden.
  • Stärken Sie die Speichersicherheit wie in Abschnitt 3 dargelegt.
  • Sorgen Sie für automatisierte Löschvorgänge auf der Grundlage von Abschnitt 4.
  • Ermöglichen Sie und durchsetzen Sie Kontrollen für die Berechtigungen 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 Zur Sicherung von Updatepaketen.
  • Echtzeit-Monitoring Zur schnellen Behandlung potenzieller Sicherheitsbedrohungen.

Weitermachen von How to Handle User Data in Capacitor Apps

Wenn Sie __CAPGO_KEEP_0__ verwenden Wie Sie Nutzerdaten in Capacitor-Anwendungen verwalten um Sicherheit und Compliance zu planen, verbinden Sie es mit Verschlüsselung für die Implementierungsdetails in Verschlüsselung Kongruenz für die Implementierungsdetails in Kongruenz 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 das Produktworkflow in Capgo Trust Center.

Live-Updates für Capacitor-Apps

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

Menschliche Unterstützung von Martin

Los geht's jetzt

Neueste Beiträge aus unserem Blog

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