Android 应用内购买,防止盗版

Android In-App Purchases, protection from piracy

我最近读了 Can In-App Purchase Prevent Software Piracy

它正在谈论使用 ssl 等来保护应用程序免受盗版。 我打算做一些不同的事情,但我不确定这是否足够。 用户将在应用程序中注册我的服务,然后当用户想要激活一些付费内容时。 用户将为此付费,购买完成后,该应用程序将写入 sql 数据库以激活某些内容。 当应用程序连接到互联网时,它会获取是否激活了某些东西的数据,如果激活了某些东西,它将启用它。我的应用程序适用于互联网,因此很可能检查过程始终有效。 而且我会将设备属性发送到服务器,所以我不会允许用户使用超过 3 个设备的相同用户名和密码的应用程序。

问题是,够了吗?我的服务器不会使用 ssl 或其他东西,而是 sql 数据库。

这绝对是一个哲学问题。就一般安全性而言,永远都不够。归结为风险评估。

您的情况分为三个方面:

  1. 购买身份验证 - 如果您做对了,Google 已经创建了一个实用的安全解决方案。如果您在购买经过验证之前甚至不调用服务器,那么 SSL 将无助于提高这一方面的安全性。

  2. 限制设备 - 这是您可以从 SSL 受益的地方。没有 SSL 的风险是,如果您有足够聪明的人来欺骗您的服务器并执行 Man-in-the-Middle attack。如果发生这种情况,他们只能使用超过建议的 3 台设备访问内容。

  3. 内容保护 - 如果服务器上的内容是客户付费访问的内容,则该内容可能成为目标。有人可能会尝试欺骗设备并访问您的服务器内容。 SSL 可能会或可能不会对此有所帮助,具体取决于服务器端的实施。

我的两分钱*:您可以花费 days/weeks/months 实施解决方案,或者您可以采用实用(安全性较低)的解决方案并更多地关注您的用户体验。即,总体安全性或用户数量及其满意度哪个更重要?

*除非您的内容因合同义务而需要保护。