딥링크

IT 위키
Deep Link; 딥링크
모바일 기기에서 링크를 누르면 설치된 앱이 실행되고 그 안의 특정 화면으로 바로 이동하게 하는 기능

웹에서 특정 페이지로 직접 가는 링크를 가리키던 말이 모바일로 옮겨 오면서, 앱의 내부 화면을 가리키는 뜻으로 굳었다.

방식 내용 한계
커스텀 URL 스킴 `myapp://product/123` 처럼 앱이 등록한 고유 스킴을 쓴다 아무 앱이나 같은 스킴을 등록할 수 있다. 가로채기에 취약
유니버설 링크(iOS) / 앱 링크(안드로이드) 일반 https 주소를 쓰되, 서버에 올린 검증 파일(apple-app-site-association, assetlinks.json)로 도메인 소유를 증명한 앱만 연결된다 서버 설정이 필요하다
디퍼드 딥링크(Deferred) 앱이 없으면 스토어로 보내고, 설치 후 처음 실행될 때 원래 목적지로 이동시킨다 광고 성과 측정에 쓰인다

보안 위협

[편집 | 원본 편집]
  • 딥링크 하이재킹 — 악성 앱이 정상 앱과 같은 커스텀 스킴을 등록해 링크를 가로챈다. 사용자가 누른 링크가 악성 앱으로 열린다
  • 파라미터 조작 — 딥링크에 실린 값(`?url=`, `?token=`)을 검증 없이 처리하면 임의 웹뷰 로딩, 오픈 리다이렉트, 계좌이체 같은 민감 기능의 무단 호출로 이어진다
  • 웹뷰 연계 공격 — 딥링크로 앱의 웹뷰를 열게 하고 그 안에서 스크립트를 실행시킨다
  • 인증 우회 — 로그인 화면을 건너뛰고 내부 화면에 직접 진입
  • 커스텀 스킴 대신 유니버설 링크·앱 링크를 쓴다. 도메인 검증이 되므로 가로채기가 불가능하다
  • 딥링크로 들어온 모든 파라미터를 신뢰하지 않고 검증한다 (허용 목록 방식)
  • 민감한 동작은 딥링크만으로 실행하지 않고 재인증을 요구한다
  • 웹뷰에서 JavaScript 인터페이스 노출을 최소화한다
  • 링크를 보낸 출처(Referrer)를 확인한다

같이 보기

[편집 | 원본 편집]