본문으로 건너뛰기

Capacitor 사용자 데이터 관리 방법

사용자 데이터를 안전하게 관리하고 규정 준수하는 데 필요한 전략을 학습하세요.

Capacitor 사용자 데이터 관리 방법

사용자 데이터를 처리하는 방법 Capacitor 애플리케이션은 안전한 저장소, 데이터 보유 기간의 명확한 정책, 그리고 데이터 보호 법률에 대한 준수를 요구합니다. GDPR and CCPA. GDPR

  • CCPA: 필요한 기능에만 필요한 데이터만 수집하십시오.
  • 데이터 최소화: 필요한 앱 기능에만 필요한 데이터만 수집합니다. (Data Minimization : Collect only what’s necessary for specific app features.) @capacitor/secure-storage Capacitor 앱에서 사용자 데이터를 처리하는 방법
  • 데이터 보유 기간: 정의된 시간 제한에 따라 자동으로 삭제합니다.
  • 사용자 권한: 사용자들이 데이터를 접근, 삭제 또는 내보내기 위해 허용합니다.
  • 권한 관리: 요청에 대한 대안을 제공하고 거부된 요청에 대해 대안을 제공합니다.
  • OTA 업데이트: Cloudflare와 같은 도구를 사용하여 안전한 OTA 업데이트 보장을 위해 Capgo.

Ionic 사용 방법 Capacitor 데이터 보안

Capacitor 프레임워크 문서

데이터 수집 최소화

데이터 수집을 관리하는 데 있어 구조화된 접근 방식이 개인 정보 보호 규정 준수를 유지하는 데 중요합니다. Capacitor의 내장 도구를 사용하여 데이터 수집을 최소화하는 데 도움이 되는 도구를 활용하여, 데이터 수집을 개선하는 데 실제적인 단계를 취할 수 있습니다.

데이터 수집 검토

데이터 흐름을 매핑하여 시작하세요. 데이터 선조기와 같은 도구를 사용하여 불필요한 데이터가 수집되는 영역을 식별하세요. 개인 정보 영향 평가(PIA) 소프트웨어는 각 데이터 항목이 정말로 필요하다고 판단하는 데 도움을 줄 수 있습니다. 다음 영역에 집중하세요:

데이터 유형 검토 초점 작업 항목
사용자 입력 폼 필드 및 유효성 검사 필요하지 않은 field를 제거하세요
API 호출 요청/응답 페이로드 필요하지 않은 데이터 field를 필터링하세요
저장소 context Page/area: Capgo Builder / native cloud build product page. Role: Short UI label or navigation item. Seen in: page native-build.astro. Message key `native_build_v2_trust_stor_lbl` (Native Build V2 Trust Stor Lbl). | Page/area: Enterprise product/pricing page. Role: Short UI label or navigation item. Seen in: page enterprise.astro. Message key `enterprise_plugins_legacy_storage` (Enterprise Plugins Legacy Storage).
캐시 및 영구 데이터 저장소 사용을 최적화하세요 분석

context

Page/area: Capgo marketing website. Role: Short UI label or navigation item. Message key `analytics` (Analytics).

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

애플리케이션이 날씨 기능을 가지고 있다면, 그것은 주소 대신 주소의 일부인 code만 필요할 수 있습니다. 이 접근 방식은 앱의 핵심 기능을 수행하기 위해 필요한 정보만 수집하는 것을 보장합니다.[1][5].

데이터 입력 제어

폼 및 API 호출을 통해 데이터를 수집하는 양을 제한하기 위해 유효성 검사 도구를 사용하십시오. 클라이언트 측 유효성 검사와 서버 측 검증을 combination하여 이러한 제한을 효과적으로 적용하십시오.

Capacitor의 보안 기능을 통합하여 이러한 제어를 강화하세요.

  • 가능한 경우 드롭다운 메뉴를 사용하는 대신 자유 텍스트 필드를 사용하십시오.
  • 텍스트 입력 필드에 대한 문자 수 제한을 설정하십시오.

자동화된 발견 도구를 사용하여 데이터 수집 관행이 앱의 의도된 기능과 일치하는지 확인하기 위해 매 분기마다 감사 절차를 계획하십시오.

데이터 보안 및 저장

데이터 수집 경계를 정의한 후에, 사용자 정보를 보호하는 동시에 데이터 최소화 원칙에 따라 지키는 것이 중요합니다.

보안 저장 설정

The @capacitor/secure-storage 플러그인은 iOS Keychain 및 Android Keystore와 같은 내장 보안 기능을 사용하여敏感 데이터를 보호합니다. [1]. 더 큰 구조화된 데이터 세트에 대해 @capgo/capacitor-데이터 저장소(SQLite) SQLite 데이터 저장을 암호화하고 @capgo/capacitor- persistant account 재설치 시에도 계정 상태를 유지할 수 있습니다. @capgo/capacitor-개인정보 보호 화면 앱 switcher 및 recent-apps preview에서 sensitive UI를 숨깁니다.

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

데이터 암호화 방법

클라이언트 측 암호화를 추가하는 것은 또 다른 보호 계층입니다. CryptoJS Sensitive 정보를 암호화하는 데 도움이 되는 라이브러리입니다:

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

암호화 키를 정기적으로轮전하는 것은 보안을 향상시키는 지혜로운 방법입니다. 이로 인해 하나의 키가 compromisded되더라도 나머지 데이터는 안전합니다. [2].

데이터 저장 옵션 비교

데이터의 민감도에 따라 적절한 저장 솔루션을 선택해야 합니다. 데이터의 민감도에 따라 적절한 저장 솔루션을 선택해야 합니다. 여기서 빠르게 비교해 보겠습니다.

기능 보안 저장 로컬 저장
보안 수준 높은 (암호화) 기본
최적 토큰, 비밀번호 비민감한 설정
성능 속도 저하 (암호화로 인해) 빠른 접근

API는 인증 토큰 및 개인 사용자 데이터와 같은 중요한 정보를 저장하는 데 적합한坚固한 선택입니다. [1][4]. 암호화 기능 도 보관 기간에 따라 데이터에 제어된 접근을 허용합니다. [2].

sbb-itb-f9944d2

데이터 저장 기간 제한

데이터 보관 정책을 명확하게 설정하면 데이터 최소화 원칙과 일치하여 정보가 필요하지 않은 기간 longer 보관되지 않도록 합니다.

저장 기간 규칙

사용자 데이터의 유형에 따라 정의된 보관 기간이 있어야 하며, 목적과敏感도에 따라 다릅니다. 아래는 __CAPGO_KEEP_0__ 앱에서 데이터 보관을 관리하는 데 대한 제안된 프레임워크입니다. Capacitor 앱:

데이터 유형 보관 기간 사유
계정 데이터 계정 삭제 또는 2년의 비활동 기간까지 계정 관련 작업을 위한 필요
거래 기록 7년 금융 규제 준수
분석 데이터 90일(개인 정보 삭제), 1년(삭제) 기능 향상에 대한 지원
마케팅 선호도 계정 삭제 또는 Opt-out 전까지 consent 요구 사항을 준수합니다

데이터를 저장하는 방법에 대한 예시입니다. 데이터가 만료되는 날짜를 프로그램적으로 저장하는 방법입니다.

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

자동 데이터 삭제

데이터 정리 자동화를 통해 규정 준수 및 수동 개입을 줄일 수 있습니다. Capacitor의 배경 fetch 기능은 이에 유용한 도구입니다.

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

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

SQLite SQLite 저장을 위해 사용하는 경우, 만료된 레코드를 자동으로 삭제하기 위해 트리거를 설정할 수 있습니다.

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

사용자 데이터 삭제 옵션

사용자의 데이터를 관리할 수 있도록 하는 것은 중요합니다. 다음 두 가지 기능을 implement할 수 있습니다.

  • 특정 데이터 삭제사용자 데이터를 제거할 수 있도록 허용하세요.
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]
    );
  }
}
  • 사용자 데이터 내보내기사용자 저장된 데이터를 구조화된 형식으로 다운로드할 수 있도록 허용하세요.
async function exportUserData(userId: string) {
  // Gathers all user data for export
  const userData = await collectUserData(userId);
  return JSON.stringify(userData);
}

프랑스의 데이터 보호 당국 CNIL 앱의 핵심 기능과 일치하는 보유 기간이 있어야 한다는 점을 강조합니다. [3]이 원칙은 특히 Capacitor 앱 개발자에게 특히 중요합니다. 데이터 보유 기간 전략을 결정할 때 이 원칙을 지침으로 삼아야 합니다.

앱 권한 관리

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.

권한 요청 단계

권한 요청이 앱의 데이터 수집 목표와 일치하는지 확인하세요. 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;
};

거부된 권한 관리

사용자가 권한 요청을 거부할 경우, 명확한 대안과 지침을 제공하십시오. 예를 들어 다음과 같습니다.

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

권한 요청 시기

권한 요청 시기를 잘 선택하면 사용자 동의율을 크게 향상시킬 수 있습니다. 권한 요청 시기 전략의 빠른 개요는 다음과 같습니다.

권한 요청 시기 전략 권한 요청 시기 전략의 가장 좋은 사용 사례
즉시 특정 기능에 필요한 경우
문맥 비중요한 기능에 필요한 경우
첫 번째 런칭 core 기능이 필요할 때
지연 optional 기능을 사용하는 사용자 여행 중에

예를 들어, 사용자가 사진을 찍는 동작을 시작할 때 카메라 접근 권한을 요청할 수 있습니다:

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

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

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

이러한 상황에 맞춰서 권한을 요청하는 것은 50%의 승인률 향상을 가져올 수 있습니다. 이에 비해 사전 요청은 승인률을 낮추는 경향이 있습니다. [2]권한을 처리하는 것을 보장하기 위해, 사용자 결정에 대한 권한 상태 트래커를 유지하여 세션 간에 사용자 결정 사항을 저장하세요.

권한을 처리한 후, OTA 배포를 위한 업데이트를 보장하는 데 초점을 맞춰보세요.

OTA 업데이트 보안

앱 업데이트를 진행하는 동안 데이터의 무결성을 보장하기 위해, 안전한 OTA 업데이트 프로세스를 사용하는 것이 중요합니다. 이러한 업데이트는 데이터 수집에 대한 제한을 우회하는 앱 __CAPGO_KEEP_0__ 변경을 방지할 수 있습니다. 업데이트 패키지 서명업데이트 패키지를 서명하는 것은 앱 code 변경을 방지하는 데 중요한 단계입니다. OTA 업데이트를 보장하기 위한 몇 가지 주요 조치에 대해 알아보겠습니다.

보안 조치

업데이트 패키지 서명은 앱 code 변경을 방지하는 데 중요한 단계입니다. OTA 업데이트를 보장하기 위한 몇 가지 주요 조치에 대해 알아보겠습니다.

보안 조치 이것이 어떻게 이루어지는가
데이터 보호 AES 암호화
배포 보안 HTTPS 인증서 고정
버전 안전 버전 확인
버전 확인 버전 안전
실패 복구 즉시 롤백

Capgo 시스템 업데이트

Capgo Live Update 대시보드 인터페이스

Capgo는 Capacitor 앱의 안전한 OTA 업데이트를 간소화하기 위해 자동화된 보안 기능을 제공합니다. Capgo의 업데이트 시스템을 앱에 사용하는 방법의 예를 보겠습니다.

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

이 접근 방식은 업데이트가 검증되고 안전하며, 실패 시 롤백 옵션을 제공합니다.

데이터 저장 정책 준수

OTA 업데이트를 위해 앱 스토어 지침을 준수하는 것이 필요합니다.[1][6][7]. 각 플랫폼에는 데이터 보유 및 보안 정책에 맞게 업데이트를 확인하기 위한 특정 요구 사항이 있습니다:

플랫폼 준수 요건
iOS JavaScript 또는 자산 업데이트만 허용
Android 사용자 동의를 얻어야 합니다.
두 가지 보안 검사와 적절한 문서화

아래는 업데이트를 구현하는 예시입니다.

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

요약

중요한 점

사용자 데이터를 효과적으로 처리하려면 다음의 핵심 전략을结合해야 합니다.

  • 필요한 데이터만 수집하십시오.
  • 플랫폼-자연스러운 암호화를 사용하여 보호하십시오.
  • 데이터 보관 기한을 자동화하십시오.
  • 세부적인 권한 설정을 구성하십시오.

이 단계들은 데이터가 수집되는 순간부터 자동으로 삭제될 때까지 준수성을 보장합니다.

구현 방법

이 전략들을 실제로 적용하려면

  • __CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__

Capgo

Capgo은 OTA 업데이트를 관리하는 팀에게 내장된 보안 도구를 제공합니다. 이 도구는 이러한 노력과 일치합니다.

  • 보안 위협에 대한 빠른 대응을 위한 실시간 모니터링 __CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__ __CAPGO_KEEP_0__

Capacitor 앱에서 계속하기

If you are using Capgo. Capacitor 사용자 데이터 관리 방법 __CAPGO_KEEP_0__을 사용하여 보안 및 규정 준수 계획을 수립하려면 암호화 암호화 구현 세부 정보에서 규정 준수 규정 준수 구현 세부 정보에서 Capgo 보안 스캐너 Capgo 보안 스캐너의 제품 워크플로에서 Capgo 보안 Capgo 보안의 제품 워크플로에서 Capgo 신뢰 센터 Capgo 제품 워크플로우를 위한 신뢰 센터.

Capacitor 앱에 대한 Capacitor

Capacitor 앱에 대한 Capgo

마틴의 인간 지원

시작하기

최신 블로그

Capgo은 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공합니다.