3

我们的应用程序使用不可更新订阅来提供为期一年的内容访问。订阅收据存储在 iCloud(如果可用)和设备钥匙串中。有时还会调用一个 WS 来验证收据,但不记录交易。

我们的问题是,如果用户向后更改时钟(例如将日期设置为 2010 年),我们的订阅不会在一年后过期,而是现在三年(2013-2010)。

我们的解决方案是说超过一年的订阅是欺诈性的,收据被清除,生活还在继续。

但是,我的老板现在抱怨用户将时钟设置为过去六个月(不到一年还可以,但订阅持续 1.5 年而不是有效的一年)。

有没有更好的方法来处理设备时钟篡改,还是我们必须忍受的(我相信)?

4

2 回答 2

1

如果您的应用程序从服务器获取内容,那么您可以存储“设备标识符”列表以及到期日期。

在您的服务器上,无论订阅是否过期,客户端时间都没有声音。

于 2013-02-22T13:56:09.593 回答
0

正如我在上面的评论中所说,我会使用受信任的服务器检查时间,而不是使用本地时间。同样重要的是,一旦收据过期,立即将其删除或将其标记为过期,这样他们就无法关闭网络访问并回滚时间以使用它。

于 2013-02-22T14:10:44.843 回答