딥링크
IT 위키
- Deep Link; 딥링크
- 모바일 기기에서 링크를 누르면 설치된 앱이 실행되고 그 안의 특정 화면으로 바로 이동하게 하는 기능
웹에서 특정 페이지로 직접 가는 링크를 가리키던 말이 모바일로 옮겨 오면서, 앱의 내부 화면을 가리키는 뜻으로 굳었다.
| 방식 | 내용 | 한계 |
|---|---|---|
| 커스텀 URL 스킴 | `myapp://product/123` 처럼 앱이 등록한 고유 스킴을 쓴다 | 아무 앱이나 같은 스킴을 등록할 수 있다. 가로채기에 취약 |
| 유니버설 링크(iOS) / 앱 링크(안드로이드) | 일반 https 주소를 쓰되, 서버에 올린 검증 파일(apple-app-site-association, assetlinks.json)로 도메인 소유를 증명한 앱만 연결된다 | 서버 설정이 필요하다 |
| 디퍼드 딥링크(Deferred) | 앱이 없으면 스토어로 보내고, 설치 후 처음 실행될 때 원래 목적지로 이동시킨다 | 광고 성과 측정에 쓰인다 |
- 딥링크 하이재킹 — 악성 앱이 정상 앱과 같은 커스텀 스킴을 등록해 링크를 가로챈다. 사용자가 누른 링크가 악성 앱으로 열린다
- 파라미터 조작 — 딥링크에 실린 값(`?url=`, `?token=`)을 검증 없이 처리하면 임의 웹뷰 로딩, 오픈 리다이렉트, 계좌이체 같은 민감 기능의 무단 호출로 이어진다
- 웹뷰 연계 공격 — 딥링크로 앱의 웹뷰를 열게 하고 그 안에서 스크립트를 실행시킨다
- 인증 우회 — 로그인 화면을 건너뛰고 내부 화면에 직접 진입
- 커스텀 스킴 대신 유니버설 링크·앱 링크를 쓴다. 도메인 검증이 되므로 가로채기가 불가능하다
- 딥링크로 들어온 모든 파라미터를 신뢰하지 않고 검증한다 (허용 목록 방식)
- 민감한 동작은 딥링크만으로 실행하지 않고 재인증을 요구한다
- 웹뷰에서 JavaScript 인터페이스 노출을 최소화한다
- 링크를 보낸 출처(Referrer)를 확인한다
