2013-05-16 10 views
8

내 앱은 인앱 구매를 사용하며 Apple과 거래 영수증을 확인합니다. 이로 인해 많은 사용자가 제품 ID가 com.zeptolab.ctrbonus.superpower1 ("Cut the Rope")이라는 가짜 거래 영수증을 제출하여 인앱 구매 메커니즘을 해적하려한다는 사실을 알게되었습니다. 물론 나는 그들이 가짜 영수증으로 인앱 구매 항목을 사용하도록 허용하지 않습니다. iOS 해적판과 싸우고이 사람들이 돈을 지불하거나 고생하게하는 전략은 무엇입니까?iOS 인앱 구매 불법 복제 방지 전략?

+3

고난, 하하. 당신은 아마 그 위에 잠을 자지 않는 것이 가장 좋습니다. – Wain

답변

5

진정한 방지 방법은 자신의 서버를 통해 모든 것을 제어하는 ​​것입니다. 악의적 인 "com.zeptolab.ctrbonus.superpower1"영수증까지도 Apple 자신의 유효성 검사 끝점에서 알 수있는 유효한 유효 영수증입니다. 트랜잭션이 완료되면, 응용 프로그램은 제어 서버로 트랜잭션 데이터를주고해야합니다

  1. Validate the receipt with Apple를 자신의 서버에서.
  2. Apple이 정상이라고 대답하는 경우 Apple의 응답에서 product_id 필드를 구문 분석하고 앱의 제품 ID인지 확인합니다.
  3. 처음 두 항목이 성공하면 데이터를 반환하여 콘텐츠를 다운로드 할 위치 (호스팅 된 콘텐츠 인 경우)를 앱에 알립니다.

이 경우에도 특히 IAP 콘텐츠가 단순히 기기에 있지만 '잠김'상태 인 경우 결함이 있습니다. 서버에서 유효성 검사 호출을 리디렉션하여 서버에 "모든 것이 정상입니다!"라고 생각하게하는 방법이 있습니다. IAP 콘텐츠가 원격으로 호스팅되는 경우 콘텐츠의 위치를 ​​알지 못하는 경우 콘텐츠 위치에 대한 응답을 쉽게 스푸핑 할 수 없으므로 훨씬 어려워집니다.

대부분의 사람들에게이 문제는 자신의 서버와 원격 컨텐트를 제어하는 ​​데 비용이 많이 드는 것은 물론, 자체 검증 로직을 작성할 필요가 없다는 것입니다. 이러한 해킹이 성공하려면 더 어려워 질수록 더 많은 비용이들 수 있으므로 지출하고자하는 시간, 노력 및 비용을 얼마나 들여야 하는지를 파악해야합니다 얼마나 많은 돈을 벌고 잃는 지 대합니다. 기억해야 할 점은 하나의 "불법 복제 된"IAP는 반드시 하나의 손실 된 판매와 동일하지 않으므로이 점을 얼마나 잃을 지 짐작할 수는 있습니다.

+0

깔끔하게 설명! 감사합니다 –

+0

내 서버의 응답에 암호로 서명 한 경우 서명이 유효하지 않으므로 (응용 프로그램을 분해 및 수정하지 않고 구매 확인 자체를 쉽게 해제 할 수 있기 때문에) 리디렉션 할 수 없습니다. –