2016-09-29 84 views
3

我正在开发一个Android应用程序,并且我计划在“Open Beta”上发布这个版本,其中的Google Play商店Android应用程序的安全

我要实现的应用程序安全逻辑,可确保测试建立之后不会某个日期DD/MM/YYYY工作。

目前,我能想到的两种方法为这个逻辑:

  1. 从设备检索当前日期(使用Android代码来检索系统时间)

    问题:用户可更改设备日期以破解安全系统

  2. 使用时间服务器检查当前牛逼日期

    问题:我的应用程序不需要互联网连接,因此这将是糟糕的用户体验,如果我在应用

我开始要求互联网连接以下几个问题:

  1. 可以用什么替代方法(其他然后检查日期),以确保应用程序不会日期DD/MM/YYYY后工作吗?
  2. 如何检测用户是否手动更改了设备日期?
  3. 即使设备处于脱机状态,也可以使用其他方法查找当前日期?

编辑: 贝塔构建具有所有高级功能免费的,所以我不想公测打造的最新DD/MM/YYYY后工作。

新的问题:

我已经实现了代码来检查使用时间服务器在应用程序开始真正的日期。用户在dd/MM/YYYY之后访问应用程序可能会做什么样的黑客攻击?

预先感谢您。

+0

您可以考虑的另一种方法是允许app在beta版本中运行的次数。在任何情况下,它的日期/时间用户都可以随时清除应用程序缓存或反向日期。检查日期在线将是防止误用的最佳选择 –

+0

当您连接到互联网时,您不必通知用户,在后台执行此操作。如果服务器时间超过日期,则不允许访问应用程序,并向用户显示Beta应用程序超出使用日期的消息。 –

+0

谢谢你的评论。我们可以在后台进行日期检查,但由于应用程序可以脱机工作,因此许多用户的设备可能处于脱机状态。 –

回答

0

新的权限模式包括默认的“Internet”(您不需要专门请求它)。

+1

感谢您的回复。我并不担心互联网许可,但由于应用程序可以脱机工作,因此许多用户的设备可能处于脱机状态。 –

1

同意你不希望设备依赖于互联网。但是,在某些时候,该设备将在线(一个人将永远不会离开他/她的设备脱机,因为你的应用程序安装)。此时您检查时间戳并从那里开始。您可以禁用该应用程序或执行任何操作。许多应用程序都会在网络连接时显示此行为以便运行操作。 除了网络和设备时钟以外,您拥有的唯一其他最终解决方案是从安装应用程序的那一刻开始运行后台计时器。祝你好运

-1

您可以检查日期,并且在日期超过截止日期时,您可以在首选项中保存一个变量,以便当您输入应用程序时,即使它们更改日期,应用程序也会检测该日期已被超过。

+0

如果在超过延长试用期之前日期发生了变化,该怎么办? – Beloo

+0

Beloo您可以保存安装日期并计算日期当应用程序工作时,当它达到所需数量时,限制访问。但是,真的,我不认为人们在到期前更改日期。然而,没有什么是万无一失的,一切都可以跳跃。 – Krowne

+0

为什么不。假设你想作弊并继续一些订阅。所以如果订阅逻辑仅基于当地时间,将有可能继续这样的订阅永远 – Beloo

0

如果你不想使用互联网,你可以使用下面的想法。首次运行应用程序时获取当前时间戳并将其保存到外部存储中。每次用户启动应用程序时,检查当前时间戳和保存的时间戳。请检查负值以防止用户设置以前的日期。