보안 권장사항

인앱 결제 구현을 설계할 때는 이 문서에서 설명하는 보안 권장사항을 따라야 합니다. 이 가이드라인은 Google Play의 인앱 결제 서비스를 사용하는 모든 사용자에게 권장됩니다.

구매 세부정보 검증

신뢰할 수 있는 서버에서 구매 세부정보를 검증하는 것이 좋습니다. 그러나 서버를 사용할 수 없는 경우 기기의 앱에서 이러한 세부정보를 검증할 수 있습니다.

서버에서 검증

서버에서 서명 확인 로직을 구현하면, 공격자가 APK 파일을 리버스 엔지니어링하기가 어려워집니다. 이렇게 하면 로직에서 확인하는 서명의 무결성이 유지됩니다.

신뢰할 수 있는 서버에서 구매 세부정보를 검증하려면 다음 단계를 완료하세요.

  1. 기기-서버 핸드셰이크가 안전한지 확인합니다.
  2. 반환된 데이터 서명과 orderId를 확인하고, orderId가 이전에 처리하지 않은 고유한 값인지 확인합니다.
  3. 처리 중인 INAPP_PURCHASE_DATA에 앱의 키 서명이 있는지 확인합니다.
  4. Google Play Developer API의 ProductPurchase 리소스(인앱 상품의 경우) 또는 SubscriptionPurchase 리소스(구독의 경우)를 사용하여 구매 응답을 검증합니다. 공격자는 스토어 구매 요청에 대한 모의 답변을 만들 수 없기 때문에 이 단계가 특히 유용합니다.

잠금 해제된 콘텐츠 보호

악의적인 사용자가 잠금 해제된 콘텐츠를 재배포하는 일을 방지하려면 콘텐츠를 APK 파일에 번들로 포함하지 마시기 바랍니다. 그 대신, 다음 중 하나를 수행하세요.

  • 콘텐츠 피드와 같이, 콘텐츠를 실시간으로 전달하는 서비스를 사용합니다. 실시간 서비스를 통해 콘텐츠를 제공하면 새로운 콘텐츠를 계속 이용할 수 있습니다.
  • 원격 서버를 사용하여 콘텐츠를 전달합니다.

원격 서버나 실시간 서비스에서 콘텐츠를 제공하면 잠금 해제된 콘텐츠를 기기 메모리나 기기 SD 카드에 저장할 수 있습니다. SD 카드에 콘텐츠를 저장하는 경우 콘텐츠를 암호화하고 기기별 암호화 키를 사용해야 합니다.

상표권 및 저작권 침해에 대한 조치

원격 서버를 사용하여 콘텐츠를 제공하거나 관리하는 경우 사용자가 콘텐츠에 액세스할 때마다 애플리케이션에서 잠금 해제된 콘텐츠의 구매 상태를 확인하도록 하세요. 이렇게 하면 필요할 때 사용을 취소하고 불법 복제를 최소화할 수 있습니다.

자신의 콘텐츠가 Google Play에서 재배포되는 것을 발견하는 경우 신속하고 단호하게 행동해야 합니다. 자세한 내용은 저작권 고객센터의 저작권 FAQ 페이지를 참조하세요.