SQLite db

Tags
Insecure Local Storage
database
요약
가장 기본적인, 모바일에서 많이 쓰이는 로컬db

SQLite database란?

  • 영구/임시 데이터 저장에 로컬 저장소가 이용되는데, SQLite는 영구 데이터 저장에 가장 선호되는 형식
  • SQLite에 저장할 때에도 암호화해서 저장하지 않으면 조회 가능.
    • DB Browser 등의 툴로 그냥 열면 보임..
  • 평문으로 저장 X
  • SQLCipher 등 툴로 암호화해서 저장해야함.
    • 키가 없으면 파일을 열어 볼 수 없도록
notion image
그냥 DB Browser로 열면 내용 조회 가능하므로, 평문으로 저장해선 안된다.
그냥 DB Browser로 열면 내용 조회 가능하므로, 평문으로 저장해선 안된다.

데이터 완전삭제 하는 방법

  • 삭제된 SMS, 통화기록 등 다양한 데이터 저장에 쓰임.
  • DB에서 삭제하더라도 연결만 끊기는 것이고 실제로 DB에는 남아있음.
      1. Db 파일 자체를 지우던지
      1. 새 레코드로 덮어쓰던지
  • macOS는 sqlite3 연결 해제 시 자동 vaccum 호출하며 공간 회수되지만,
  • iOS는 SSD 수명을 생각해서인지 자동 X
    • Auto_vacuum은 db조각모음을 하지 않으므로 -> 여전히 복구 가능
    • Vacuum 명령어 수행이 답 (전체 db를 재구성 -> 삭제된 레코드 폐기)
    • 대규모 DB에선 시간 문제, ssd 수명 문제 야기
      • Update로 먼저 덮어쓴 후, delete로 삭제하기!