English · 한국어
시행일: 2026년 10월 20일 (최초 시행 2026년 9월 15일)
앱 이름: 세이프스캔 (English: SafeScan) · 패키지: com.almightyhg.safescan
세이프스캔은 QR 코드나 링크를 열기 전에 피싱·악성 앱 위험을 확인하는 앱입니다. 계정도, 로그인도, 이름·전화번호 입력란도 없습니다. 검사 기록은 기기 안에만 남고 90일 뒤 자동으로 지워집니다. 다만 사용자가 직접 저장한 코드(즐겨찾기·QR북)는 직접 지울 때까지 남습니다 — 모아 두려고 저장한 것을 앱이 말없이 지우면 안 되기 때문입니다.
다만 링크의 위험을 확인하려면 검사하는 주소 자체가 기기 밖으로 나가는 순간이 있습니다(단축 주소의 목적지 확인, 구글 위험 목록 조회, 사용자가 직접 누른 신고). 무엇이 어디로 가는지 3장에 전부 적었습니다. 그 밖의 것은 나가지 않습니다.
| 항목 | 내용 | 저장 위치 | 삭제 |
|---|---|---|---|
| 검사 기록 | 검사한 주소·판정 등급·근거·검사 시각 | 기기 내부 저장소(SQLite) | 90일 지나면 자동 삭제. 기록 탭에서 언제든 전부 삭제 가능 |
| 저장한 코드 (즐겨찾기·QR북) | 사용자가 저장을 눌러 모아 둔 주소·코드, 직접 붙인 이름·메모, 저장한 북과 등록날짜, 마지막으로 다시 검사한 시각 | 기기 내부 저장소(SQLite) | 자동 삭제되지 않습니다. 보관함 → QR북에서 항목·북 단위로, 또는 [이 목록 비우기]로 삭제. 앱을 지우면 함께 삭제 |
| 신고 대기열 | 오프라인에서 누른 신고가 전송될 때까지 잠시 보관 | 기기 내부 저장소 | 전송 뒤 삭제 |
| 설정 | 광고 유예 시작 시각, 실행 횟수(리뷰 요청용), 차단 목록 갱신 시각 | 기기 내부 저장소 | 앱을 지우면 함께 삭제 |
allowBackup=false + 백업 제외 규칙).| 언제 | 무엇이 나가나 | 어디로 | 왜 |
|---|---|---|---|
| 단축 주소(bit.ly·han.gl 등)를 검사할 때 | 그 단축 주소 | 단축 주소 서비스의 서버 | 실제 목적지를 알기 위해 리디렉션만 따라갑니다. 먼저 HEAD 요청(페이지 내용을 받지 않는 요청)을 보내고, 그 서비스가 HEAD 를 거부할 때만 GET 으로 한 번 더 보냅니다 — 이때도 응답 내용은 읽지 않고 버립니다. 쿠키·리퍼러를 보내지 않습니다. |
| 주소를 검사할 때 (구글 조회가 켜져 있는 경우) | 검사하는 주소 | Google Web Risk API | 구글이 실시간으로 관리하는 위험 사이트 목록에 있는지 묻습니다. 널리 알려진 정상 도메인은 묻지 않습니다. 구글의 처리: Google Cloud 개인정보 보호 고지 |
| 주소를 검사할 때 | 주소의 SHA-256 해시(주소 원문이 아님) | Firebase Firestore(개발자 프로젝트) | 그 주소에 다른 사용자 신고가 몇 건 있는지 확인합니다. 해시라서 서버에서 원래 주소를 알 수 없습니다. |
| 구글 조회를 했을 때 | 월별 조회 횟수와 응답 결과 분류(정상·거부·한도 초과·실패)의 숫자, 익명 ID — 주소·도메인·판정은 보내지 않습니다 | Firebase Firestore(개발자 프로젝트, 익명 ID 별 문서) | 구글 조회의 무료 한도(월 10만 건)를 넘기 전에 알고, 조회가 거부되는 장애를 빨리 찾기 위해서입니다. 검사 횟수를 제한하는 데 쓰지 않습니다. |
| 사용자가 '피싱 신고하기'를 누른 경우에만 | 신고한 주소·도메인·신고 사유·앱의 판정·신고 시각·익명 ID·(적었다면) 메모 | Firebase Firestore(개발자 프로젝트) | 검수 뒤 차단 목록에 반영하기 위해서입니다. 메모는 선택이며, 화면에서 개인정보를 적지 말라고 안내합니다. |
| 앱 실행 시 | 설치별 익명 ID(Firebase 익명 인증이 만든 무작위 값)와 기기 무결성 토큰(Play Integrity / App Check) | Firebase | 같은 사람이 같은 주소를 여러 번 신고해도 1건으로 세고, 변조된 앱의 요청을 거르기 위해서입니다. 이름·전화번호·이메일과 연결되지 않으며, 앱을 지우면 ID 가 바뀝니다. 이 요청을 처리하면서 Firebase 는 기기의 IP 주소를 받습니다(인터넷 통신의 특성상 피할 수 없음). 개발자는 IP 주소를 저장하지 않습니다. |
| 앱 실행 시(12시간에 한 번) | 앱 버전 등 설정 조회 요청 | Firebase Remote Config | 차단 목록 갱신 주소, 기능 스위치 같은 설정값을 내려받습니다. 개인정보를 보내지 않습니다. |
| 광고를 표시할 때 | 광고 ID 등 기기 정보(Google 이 처리) | Google AdMob | 4장 참고 |
이 앱은 Google AdMob 광고를 표시합니다.
| 권한 | 쓰는 곳 | 안 주면 |
|---|---|---|
| 카메라 | QR 코드를 읽을 때만. 화면은 저장·전송되지 않습니다 | 사진 선택·붙여넣기로 검사할 수 있습니다 |
| 인터넷 | 3장의 전송과 광고 | 주소 형태 검사·사칭 도메인 탐지·기기 안 차단 목록 검사는 인터넷 없이도 동작합니다 |
이 앱은 만 14세 미만 아동을 대상으로 하지 않으며, 아동에게서 개인정보를 의도적으로 수집하지 않습니다.
검사 결과는 참고용이며 100% 안전을 보장하지 않습니다. 이 앱은 백신·안티바이러스가 아니며 악성 앱을 제거하지 않습니다. 개인정보나 금융정보를 입력하기 전에는 공식 앱에서 한 번 더 확인하세요.
| 날짜 | 내용 |
|---|---|
| 2026-09-15 | 최초 작성(v1.0.0 기준) |
| 2026-09-18 | 즐겨찾기·QR북 추가(v1.1.0). 사용자가 직접 저장한 코드는 자동 삭제되지 않는다는 점을 2장·7장에 명시. 전송되는 항목은 바뀌지 않음 |
| 2026-10-01 | 3장에 구글 조회 횟수 집계(월별 숫자·응답 결과 분류, 익명 ID 문서) 추가. 주소·판정은 보내지 않음 |
| 2026-10-20 | 광고 SDK 가 자동 수집하는 4가지(대략적인 위치·앱 상호작용·진단·기기 식별자)를 4장에 명시 · 6장 "위치 정보 수집 안 함"을 "정확한 위치"로 바로잡음 · 3장 Firebase 의 IP 주소 수신과 단축 주소 GET 재시도를 명시(Play 데이터 보안 답변·실제 동작과 일치). 앱 동작은 바뀌지 않음 |