Die Handhabung von Nutzerdaten in Capacitor Apps erfordern sicheren Speicher, 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-storagePlugin für Verschlüsselung. - Datenhaltbarkeit: Automatisieren Sie die Löschung auf der Grundlage definieter Zeitgrenzen.
- Benutzerrechte: Ermöglichen Sie Benutzern, auf ihr Daten zuzugreifen, zu löschen oder zu exportieren.
- Zugriffsrechte-Verwaltung: Stellen Sie sicher, dass Benutzern Kontextbezogene Zugriffsrechte einräumen und Alternativen für abgelehnte Anfragen bereitstellen.
- OTA-Updates: Stellen Sie sicher, dass sichere Über-der-Luft-Updates mit Tools wie Capgo.
Wie man Ionic verwendet Capacitor Sichere Speicherung

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 integrierten Werkzeuge von Capacitor 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. Anzeige in: Seite native-build.astro. Nachrichten Schlü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. Anzeige in: Seite enterprise.astro. Nachrichten Schlüssel `enterprise_plugins_legacy_storage` (Enterprise Plugins Legacy Storage). | Zugriff auf und persistente Daten |
| Speicherplatzoptimierung | Analyse | Verwendungsbefolgung |
Erhalten Sie nur die wichtigsten Metriken
Zielsetzungen für die Datenverarbeitung
// 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].
Wenn Ihre App eine Wetterfunktion hat, benötigt sie möglicherweise nur eine Postleitzahl __CAPGO_KEEP_0__ anstatt eine vollständige Adresse. Diese Vorgehensweise sichert Ihnen, dass Sie nur die erforderlichen Informationen für die Kernfunktionen der App sammeln.
Dateneingabekontrollen verwenden Sie Validierungstools, um die Menge der durch Formulare und API-Anrufe gesammelten Daten zu limitieren. Combine client-side-Validierung mit server-seitiger Verifizierung, um diese Grenzen effektiv durchzusetzen.
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 quartale Audits mit automatisierten Entdeckungstools, um sicherzustellen, dass Ihre Datenverarbeitungspraktiken effizient und mit der beabsichtigten Funktionalität Ihres Apps übereinstimmen.
Daten-Sicherheit und -Speicherung
Definieren Sie Ihre Datenverarbeitungsgrenzen, ist es entscheidend, Maßnahmen zur Sicherung von Benutzerinformationen umzusetzen, während Sie sich an Grundsätzen der Datenminimierung halten.
Einrichten von sicheren Speicher
Die @capacitor/secure-storage Plugin verwendet eingebaute Sicherheitsfunktionen wie iOS Keychain und Android Keystore, 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__-data-storage-sqlite @capgo/capacitor-persistente-Konto Kann das Kontozustand über Wiederinstallierungen aufrechterhalten. @capgo/capacitor-Datenschutzsicht Verdeckt sensitive UI im App-Wechsler und im 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, sensible Informationen zu verschlüsseln:
// Basic encryption/decryption implementation
const encryptData = (data: string, key: string): string => {
return CryptoJS.AES.encrypt(data, key).toString();
};
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 davon ab, wie sensibel die Daten sind. Hier ist ein schneller Vergleich:
| Funktion | Sichere Speicherung | Lokale Speicherung |
|---|---|---|
| Sicherheitsstufe | Hoch (verschlüsselt) | Grundlegend |
| Am besten geeignet für | Tokens, Passwörter | Nicht-sensitive Einstellungen |
| Leistung | Langsamer (wegen Verschlüsselung) | Schnellerer Zugriff |
Der 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 sich auch mit den Aufbewahrungsrichtlinien ab, wodurch ein 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, indem sichergestellt wird, dass Informationen nicht länger als notwendig aufbewahrt werden.
Speicherzeitregeln
Verschiedene Arten von Benutzerdaten sollten aufgrund ihres Zwecks und ihrer Sensibilität definierte Aufbewahrungszeiträume haben. Hier ist ein vorgeschlagenes Framework für die Verwaltung der Aufbewahrung von Daten in Capacitor-Anwendungen:
| Datenart | Aufbewahrungszeitraum | Begründung |
|---|---|---|
| KundenDaten | Solange kein Konto gelöscht oder 2 Jahre Inaktivität | Für Konto-basierte Operationen erforderlich |
| Transaktionsprotokolle | 7 Jahre | Finanzvorschriften einhalten |
| AnalyseDaten | 90 Tage (anonymisiert), 1 Jahr (Löschen) | Unterstützt Funktionserweiterungen |
| Werbepreferenzen | Solange nicht abbestellt oder Konto gelöscht | 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. 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 context
CREATE TRIGGER remove_expired_data
AFTER INSERT ON user_data
BEGIN
DELETE FROM user_data
WHERE expiration_date < CURRENT_TIMESTAMP;
END;
Seite/ Bereich: Capgo-Lösungen-Marketingseite. Rolle: Kurze Benutzeroberflächenebene oder Navigationspunkt. 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).
für die Speicherung einrichten, können Sie Trigger einrichten, um automatisch veraltete Datensätze zu löschen:
- DatenlöschungsoptionenEntfernen Sie bestimmte Daten
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]
);
}
}
- : Erlassen Sie Benutzern die Möglichkeit, bestimmte Datenarten, die mit ihrem Account verbunden sind, zu löschen.Daten exportieren
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 Die 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
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 der 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;
};
Gestaltung verweigerter Berechtigungen
Wenn ein Benutzer eine Berechtigungsanforderung ablehnt, bieten Sie klare Alternativen und Anleitungen 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 Berechtigungsanforderung
Als Sie die Berechtigungen anfragen, spielt der Zeitpunkt eine Rolle. Eine strategische Zeitplanung kann die Akzeptanzraten der Benutzer erheblich verbessern. Hier ist eine schnelle Übersicht über die Zeitstrategien
| Zeitstrategie | Beste Verwendungsfälle |
|---|---|
| Just-in-Time | Für bestimmte Funktionen, wenn benötigt |
| Kontextbezogen | Für nicht-kritische Funktionen |
| Erster Start | Für Kernfunktionen, die vorher erforderlich sind |
| Verschoben | Für optionalen Funktionen später im Benutzerjourney |
Beispiel: Sie können die Kamera-Zugriff nur 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 Zustimmungsrate um 50% gegenüber vorherigen Anfragen erhöhen [2]. Um eine glatte Erfahrung zu gewährleisten, halten Sie einen Zustandsverfolger für Berechtigungen auf, der Benutzerentscheidungen zwischen den Sitzungen speichert.
Sobald die Berechtigungen gehandhabt sind, können Sie sich auf die Sicherung von Updates konzentrieren, insbesondere für drahtlose (OTA) Bereitstellungen.
Sicherheit bei OTA-Updates
Um die Datenintegrität während Anwendungsupdates, sicherzustellen, ist es unerlässlich, sichere OTA (Over-The-Air)-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 kritischer Schritt zur Abwehr unautorisierten code-Änderungen. Hier sind einige wichtige Maßnahmen, um OTA-Updates zu sichern:
| Sicherheitsmaßnahme | Wie es funktioniert |
|---|---|
| Inhaltsschutz | AES-Verschlüsselung |
| Zuverlässige Lieferung | Sicherheit über HTTPS mit Zertifikatspinning |
| Integrität der Aktualisierung | Prüfsummenprüfung |
| Sicherheit der Version | Signierte Versionsnummern |
| Wiederherstellung bei Fehlern | Instant-Rollback-Funktion |
Capgo Update-System

Capgo vereinfacht sichere OTA-Updates für Capacitor-Anwendungen, indem es 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();
}
};
Diese Vorgehensweise sichert Updates ab und stellt sicher, dass sie sicher sind, mit Rollover-Optionen 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 spezifische Anforderungen, um sicherzustellen, dass Updates mit ihren Datenschutz- und Sicherheitsrichtlinien übereinstimmen:
| Plattform | Konformitätsanforderungen |
|---|---|
| iOS | Nur JavaScript- oder Asset-Updates |
| Android | Benutzererlaubnis muss eingeholt werden |
| Beide | Sicherheitsprüfungen und ordnungsgemäße Dokumentation |
Unter folgendem Beispiel wird die Implementierung von store-konformen Updates gezeigt:
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:
- Erheben Sie nur die notwendigen Daten.
- Verwenden Sie Plattform-spezifische Verschlüsselung, um sie zu schützen.
- Automatisieren Sie 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 Datenströme mit den in Abschnitt 2 diskutierten Methoden.
- Stärken Sie die Speicherungssicherheit wie in Abschnitt 3 beschrieben.
- Stellen Sie automatisierte Löschvorgänge basierend auf Abschnitt 4 ein.
- Stellen Sie und durchsetzen Sie die Berechtigungssteuerungen wie in Abschnitt 5 detailliert beschrieben.
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 Nutzerdaten in __CAPGO_KEEP_0__-Apps handhaben. Wenn Sie "Wie Sie Nutzerdaten in Capacitor-Apps handhaben" verwenden. um Sicherheit und Compliance zu planen, verbinden Sie es mit Verschlüsselung Verschlüsselung Compliance Compliance Capgo Sicherheits-Scanner Capgo Sicherheits-Scanner Capgo Sicherheit Capgo Sicherheit Capgo Trust Center Capgo Trust Center