2013-05-16 21 views
8

我的應用程序使用應用程序內購買,並驗證與Apple的交易收據。這表明,許多用戶試圖通過提交虛假交易收據來盜用應用內購買機制,該虛假交易收據的產品ID爲com.zeptolab.ctrbonus.superpower1(來自「Cut the Rope」)。當然,我不會讓他們用虛假收據來使用應用內購買物品。什麼是一些戰鬥對付iOS盜版,並試圖讓這些人支付或遭受損失?針對iOS應用內購買盜版的策略?

+3

受苦,哈哈。你最好不要放鬆睡眠。 – Wain

回答

5

真正防止這種情況的唯一方法是通過您自己的服務器控制所有內容。即使是臭名昭着的「com.zeptolab.ctrbonus.superpower1」收據也是一個實際有效的收據,蘋果自己的驗證終端會告訴您確定無誤。一旦交易完成,應用程序應該將交易數據發送到您控制的服務器,並且:

  1. Validate the receipt with Apple從您自己的服務器上。
  2. 如果Apple表示沒問題,請解析Apple的響應中的product_id字段,並確保它是來自您的應用的產品ID。
  3. 如果前兩項通過,則返回數據以告訴您的應用在哪裏下載您的內容(如果它是託管內容的話)。

即使這有一個缺陷,特別是如果你的IAP內容只是在設備上,但「鎖定」。有許多方法可以從您的服務器重定向驗證呼叫,讓您的應用程序認爲您的服務器說「一切正常!」。如果您的IAP內容是遠程託管的,那麼這將更加困難,因爲如果他們不知道內容的位置在哪裏,那麼它們就不能輕易地對內容的位置進行欺騙。

對於大多數人來說,所有這些問題都是控制你自己的服務器和遠程內容會花費很多,更不用說編寫你自己的驗證邏輯了。要讓這些黑客成功越困難,你就越需要花費,所以你必須權衡你想讓他們「忍受」你願意花費多少時間,精力和金錢與你做出和/或失去多少。請記住,一個「盜版」的IAP不一定等於一個丟失的銷售,所以很難判斷你會失去多少。

+0

整齊地解釋!謝謝 –

+0

如果來自我的服務器的響應是加密簽名的,那麼它們不能重定向,因爲簽名不會被驗證(不需要反彙編和修改應用程序,但可以輕鬆禁用購買檢查本身)。 –