Mengelola data pengguna di Capacitor aplikasi memerlukan penyimpanan yang aman, kebijakan penyimpanan yang jelas, dan konsistensi dengan undang-undang perlindungan data seperti GDPR dan CCPA. Panduan ini menjelaskan cara mengurangi pengumpulan data, melindungi informasi sensitif, dan mengelola izin dengan efektif. Berikut adalah gambaran singkat:
- Pengurangan Data: Kumpulkan hanya apa yang diperlukan untuk fitur aplikasi tertentu.
- Penyimpanan yang Aman: Gunakan alat seperti
@capacitor/secure-storageplugin untuk enkripsi. - Penghapusan Data: Otomatisasi penghapusan berdasarkan batasan waktu yang ditentukan.
- Privasi Pengguna: Izinkan pengguna untuk mengakses, menghapus, atau mengekspor data mereka.
- Pengelolaan Izin: Tuntukan izin kontekstual dan berikan alternatif untuk permintaan yang ditolak.
- Pembaruan Perangkat Lunak: Pastikan pembaruan perangkat lunak aman secara daring dengan menggunakan alat seperti Capgo.
Bagaimana Menggunakan Ionic Capacitor __CAPGO_KEEP_0__ Dokumentasi Situs Web Framework

Menurunkan Pengumpulan Data
Mengambil pendekatan terstruktur untuk mengulas, merencanakan, dan mengelola pengumpulan data adalah kunci untuk tetap memenuhi regulasi privasi. Dengan memanfaatkan alat-alat bawaan Capacitor untuk mengurangi pengumpulan data, Anda dapat mengambil langkah-langkah praktis untuk meningkatkan praktik data aplikasi Anda.
Pengumpulan Data Review
Mulai dengan membuat peta bagaimana data mengalir melalui aplikasi Anda. Gunakan alat-alat seperti visualizer garis keturunan data untuk menemukan area-area di mana data tidak perlu dikumpulkan. Perangkat lunak Penilaian Dampak Privasi (PIA) dapat membantu Anda menilai apakah setiap bagian data benar-benar diperlukan. Berikut adalah penjelasan tentang area-area yang perlu difokuskan:
| Jenis Data | Fokus Pengulasan | Item-Item Tindakan |
|---|---|---|
| Input Pengguna | Formulir dan validasi | Hapus bidang yang tidak perlu |
| API Calls | Pengiriman dan respons payload | Filter data yang tidak perlu |
| Penyimpanan | Konteks: Halaman/area: Halaman pembangun Capgo / produk halaman bangun awan asli. Peran: Label UI pendek atau item navigasi. Dilihat di: halaman native-build.astro. Kunci pesan `native_build_v2_trust_stor_lbl` (Native Build V2 Trust Stor Lbl). | Halaman/area: Halaman produk/harga perusahaan. Peran: Label UI pendek atau item navigasi. Dilihat di: halaman enterprise.astro. Kunci pesan `enterprise_plugins_legacy_storage` (Enterprise Plugins Legacy Storage). | Data yang disimpan dan tetap |
| Optimalkan penggunaan penyimpanan | Analitik | Pengukuran penggunaan |
Simpan hanya metrik yang penting
Tujuan Pengumpulan Data
// 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].
Jika aplikasi Anda memiliki fitur cuaca, mungkin hanya memerlukan kode pos __CAPGO_KEEP_0__ daripada alamat lengkap. Pendekatan ini memastikan Anda mengumpulkan hanya informasi yang diperlukan untuk fungsi aplikasi utama
Use validation tools to limit the amount of data collected through forms and API calls. Combine client-side validation with server-side verification to enforce these limits effectively.
Incorporas fitur-fitur keamanan Capacitor untuk meningkatkan pengendalian ini:
- Pilih menu dropdown daripada bidang teks bebas di mana-mana saja.
- Set batas karakter untuk bidang input teks.
Jadwalkan audit kuartal dengan alat penemuan otomatis untuk memastikan praktik pengumpulan data Anda tetap efisien dan sejalan dengan fungsi aplikasi yang diinginkan.
Keamanan dan Penyimpanan Data
Saat Anda telah menentukan batas pengumpulan data, sangat penting untuk menerapkan langkah-langkah untuk melindungi informasi pengguna sambil mematuhi prinsip minimasi data.
Mengatur Penyimpanan yang Aman
Plugin ini menggunakan fitur keamanan bawaan seperti iOS Keychain dan Android Keystore untuk melindungi data sensitif. @capacitor/secure-storage . Untuk dataset struktur yang lebih besar, [1]@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-data-storage-sqlite @capgo/capacitor-data-storage-sqlite provides encrypted SQLite storage, and @capgo/capacitor-akun-tetap dapat menyimpan status akun di seluruh penginstalan ulang. @capgo/capacitor-layar-privasi menyembunyikan UI sensitif di pengganti aplikasi dan pratinjau aplikasi terbaru.
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' });
Metode Pengenkripsi Data
Menambahkan pengenkripsi sisi klien adalah lapisan perlindungan lainnya. Libray seperti CryptoJS dapat membantu mengenkripsi informasi sensitif:
// Basic encryption/decryption implementation
const encryptData = (data: string, key: string): string => {
return CryptoJS.AES.encrypt(data, key).toString();
};
Mengganti kunci pengenkripsi secara berkala adalah cara pintar untuk meningkatkan keamanan. Ini memastikan bahwa bahkan jika satu kunci dicuri, data lainnya tetap aman [2].
Membandingkan Opsi Penyimpanan
Memilih solusi penyimpanan yang tepat tergantung pada seberapa sensitif data tersebut. Berikut adalah perbandingan singkat:
| Fitur | Pengamanan Penyimpanan | Penggunaan Penyimpanan Lokal |
|---|---|---|
| Level Keamanan | Tinggi (dienkripsi) | Dasar |
| Paling Cocok Untuk | Token, kata sandi | Pengaturan tidak sensitif |
| Kinerja | context: Halaman/area: Bagian utama masalah/solusi. Peran: Judul bagian atau halaman. Dilihat di: halaman premium-support.astro. Kunci pesan `ps_help_performance_title` (Ps Bantu Kinerja). | Lebih Lambat (karena dienkripsi) |
The Secure Storage API is a solid choice for storing critical information like authentication tokens and personal user data [1][4]Penggunaan kemampuan enkripsi juga sesuai dengan kebijakan penyimpanan, memungkinkan akses kontrol ke data dalam jangka waktu yang ditentukan [2].
sbb-itb-f9944d2
Pengaturan Waktu Penyimpanan Data
Mengatur kebijakan penyimpanan data dengan jelas membantu memenuhi prinsip minimasi data, sehingga informasi tidak disimpan lebih lama dari yang diperlukan.
Aturan Waktu Penyimpanan
Jenis data pengguna harus memiliki periode penyimpanan yang ditentukan berdasarkan tujuan dan tingkat sensitivitasnya. Berikut adalah kerangka yang disarankan untuk mengelola penyimpanan data dalam Capacitor:
| Jenis Data | Periode Penyimpanan | Alasan |
|---|---|---|
| Data Akun | Sampai penghapusan akun atau 2 tahun ketiadaan aktivitas | Diperlukan untuk operasi terkait akun |
| Catatan Transaksi | 7 tahun | Kepatuhan dengan regulasi keuangan |
| Data Analitik | 90 hari (anonim), 1 tahun (penghapusan) | Mendukung perbaikan fitur |
| Preferensi Pemasaran | Sampai penghapusan akun atau opt-out | Menurut persyaratan konsentasi |
Contoh berikut menunjukkan cara menyimpan data dengan tanggal kedaluwarsa secara programatik:
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) });
}
Menghapus Data Otomatis
Menghapus data secara otomatis dapat membantu memenuhi persyaratan dan mengurangi intervensi manual. Fitur fetch latar belakang Capacitor adalah alat yang berguna untuk hal ini:
import { BackgroundFetch } from '@capacitor/background-fetch';
BackgroundFetch.registerTask({
taskId: 'data-cleanup',
delay: 3600000,
periodic: true,
requiresNetworkConnectivity: false
}, async () => {
await cleanExpiredData();
return BackgroundFetch.Result.NewData;
});
Jika Anda menggunakan SQLite context: Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/cordova-to-capacitor-ai.astro. Kunci pesan `solutions_cordova_to_capacitor_ai_row_sqlite` (Solutions 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;
untuk penyimpanan, Anda dapat mengatur trigger untuk menghapus rekaman yang kedaluwarsa secara otomatis:
Pilihan Penghapusan Data Pengguna
- Menghadirkan alat bagi pengguna untuk mengelola data mereka sangat penting. Berikut adalah dua fitur utama yang dapat Anda implementasikan:Hapus Data Spesifik
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]
);
}
}
- : Izinkan pengguna untuk menghapus jenis data tertentu yang terkait dengan akun mereka.Ekspor Data Pengguna
async function exportUserData(userId: string) {
// Gathers all user data for export
const userData = await collectUserData(userId);
return JSON.stringify(userData);
}
Otoritas Perlindungan Data Perancis CNIL menyoroti bahwa periode penyimpanan harus sesuai dengan fungsi inti dari aplikasi [3]. Prinsip ini sangat relevan bagi pengembang aplikasi Capacitor dan harus mengarahkan strategi penyimpanan data Anda.
Pengendalian Izin Aplikasi
Mengelola izin aplikasi dengan hati-hati adalah kunci untuk melindungi data pengguna sambil memastikan aplikasi Anda berfungsi sebagaimana mestinya. Dengan mengelola izin dengan benar, Anda dapat membatasi akses hanya pada fitur perangkat yang benar-benar diperlukan oleh aplikasi Anda. Capacitor’s Permissions API menawarkan pendekatan yang terintegrasi untuk mengelola izin pada baik iOS dan Android.
Langkah-Langkah Permintaan Izin
Pastikan izin yang Anda minta sesuai dengan tujuan pengumpulan data aplikasi Anda. Berikut adalah contoh implementasi untuk mengelola permintaan izin dalam aplikasi Capacitor:
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;
};
Mengelola Izin yang Ditolak
Jika pengguna menolak permintaan izin, berikan alternatif yang jelas dan panduan. Berikut adalah contoh:
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();
}
}
};
Waktu Mengajukan Izin
Mengajukan izin pada waktu yang tepat dapat meningkatkan tingkat penerimaan pengguna secara signifikan. Berikut adalah ringkasan cepat dari strategi waktu:
| Strategi Waktu | Penggunaan Terbaik |
|---|---|
| Segera Saatnya | Untuk fitur tertentu ketika dibutuhkan |
| Kontekstual | Untuk fitur non-kritis |
| Pertama Kali | context: Halaman/area: Capgo Builder / produk halaman native cloud build. Peran: Label UI singkat atau item navigasi. Pesan kunci `native_build_builder_credit_first` (Kredit Pembangun Native Build Pertama). |
| Untuk fitur inti yang dibutuhkan sebelumnya | Terlambat |
Untuk fitur opsional kemudian dalam perjalanan pengguna
const captureImage = async () => {
const userStartedCapture = true;
if (userStartedCapture) {
const granted = await permissionHandler('camera');
if (granted) {
await startCamera();
} else {
showUploadOption();
}
}
};
Contohnya, Anda dapat meminta akses kamera hanya ketika pengguna menginisiasi tindakan seperti mengambil foto: [2]To memastikan pengalaman yang lancar, simpanlah pengingat status izin yang menyimpan keputusan pengguna di antara sesi.
Setelah izin diatur, Anda dapat memindahkan perhatian ke pengamanan update, terutama untuk pengiriman OTA (Over-The-Air).
Keamanan Update OTA
Untuk memastikan integritas data selama update aplikasi, sangat penting untuk menggunakan proses update OTA yang aman. Proses ini membantu mencegah perubahan tidak sah pada aplikasi code, yang mungkin dapat menghindari batasan pada pengumpulan data.
Penandatanganan Paket Update
Penandatanganan paket update adalah langkah kritis dalam melindungi terhadap perubahan tidak sah pada code. Berikut beberapa langkah penting untuk mengamankan update OTA:
| Langkah Keamanan | Bagaimana Cara Melakukannya |
|---|---|
| Pengamanan Konten | Enkripsi AES |
| Keamanan Pengiriman | HTTPS dengan penguncian sertifikat |
| Integritas Perbaruan | Pengverifikasi Hash |
| Keamanan Versi | Nomor Versi yang Ditandatangani |
| Pengembalian Gagal | Kemampuan Rollback Instan |
Capgo Sistem Perbaruan

Capgo memudahkan perbaruan OTA yang aman untuk aplikasi Capacitor dengan menawarkan fitur keamanan otomatis. Berikut adalah contoh cara menggunakan sistem perbaruan Capgo di aplikasi Anda:
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();
}
};
Metode ini memastikan pembaruan yang diverifikasi dan aman, dengan opsi rollback dalam kasus gagal.
Kebijakan Penyimpanan
Mematuhi pedoman aplikasi toko adalah diperlukan untuk pembaruan OTA[1][6][7]. Setiap platform memiliki persyaratan tertentu untuk memastikan pembaruan sesuai dengan kebijakan penyimpanan dan keamanan data mereka:
| Platform | Persyaratan Kepatuhan |
|---|---|
| iOS | Hanya pembaruan JavaScript atau asset |
| Andoid | Konsentasi pengguna harus diperoleh |
| Keduanya | Pemeriksaan keamanan dan dokumentasi yang tepat |
Contoh di bawah ini adalah implementasi pembaruan yang kompatibel dengan penyimpanan:
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');
}
};
Ringkasan
Kunci Pemahaman
Mengelola data pengguna secara efektif melibatkan kombinasi strategi inti berikut:
- Hanya kumpulkan data yang diperlukan.
- Gunakan enkripsi asli platform untuk melindunginya.
- Automatisasi batas waktu penyimpanan data.
- Setel kontrol izin yang rinci.
Langkah-langkah ini bekerja sama untuk memastikan kompatibilitas dari saat data dikumpulkan hingga secara otomatis dihapus.
Langkah untuk Mengimplementasikan
Untuk menerapkan strategi-strategi ini:
- Audit aliran data Anda menggunakan metode yang dibahas di bagian 2.
- Perkuat keamanan penyimpanan seperti yang dijelaskan di bagian 3.
- Atur proses penghapusan otomatis berdasarkan bagian 4.
- Bangun dan terapkan kontrol izin yang terperinci di bagian 5.
Menggunakan Capgo
Untuk tim yang mengelola update OTA, Capgo menawarkan alat keamanan bawaan yang sesuai dengan upaya ini:
- Enkripsi akhir-ke-akhir context: Halaman/area: Situs web pemasaran Capgo. Peran: Label UI singkat atau item navigasi. Kunci pesan `end_to_end_encryption` (End To End Encryption).
- untuk memastikan paket update. Pantauan waktu nyata
Keep going from How to Handle User Data in Capacitor Apps
Teruskan dari Cara Mengelola Data Pengguna di __CAPGO_KEEP_0__ Aplikasi Jika Anda menggunakan aplikasi Capacitor Dalam merencanakan keamanan dan kinerja, hubungkan dengan Enkripsi untuk detail implementasi di Enkripsi, Kinerja untuk detail implementasi di Kinerja, Capgo Scanner Keamanan untuk alur kerja produk di Capgo Scanner Keamanan, Capgo Keamanan untuk alur kerja produk di Capgo Keamanan, dan Capgo Pusat Kepercayaan untuk alur kerja produk di Capgo Pusat Kepercayaan.