【发布时间】:2016-09-29 11:22:38
【问题描述】:
我正在开发一个 Android 应用程序,并计划在 Google Play 商店上以“公开测试版”的形式发布此构建版本。
我想实现应用程序安全逻辑,它可以确保 beta 版本在特定日期 dd/MM/YYYY 之后不会工作。
目前,我可以为这个逻辑想到两种方法:
-
从设备中检索当前日期(使用 Android 代码检索系统时间)
问题:用户可以更改设备日期以破解安全系统
-
使用时间服务器检查当前日期
问题:我的应用程序不需要互联网连接,因此如果我在应用程序启动时要求互联网连接,用户体验会很差
我有以下问题:
- 可以使用哪些替代方法(检查日期除外)来确保应用在日期 dd/MM/YYYY 之后无法运行?
- 如何检测到用户手动更改了设备日期?
- 即使设备离线也可以通过其他方法找到当前日期?
编辑: beta 版本免费提供所有高级功能,因此我不希望 beta 版本在日期 dd/MM/YYYY 之后工作。
新问题:
我已经实现了在应用程序启动时使用时间服务器检查实际日期的代码。在 dd/MM/YYYY 日期之后,用户可以进行哪些黑客攻击来访问应用程序?
提前谢谢你。
【问题讨论】:
-
您可以想到的另一种选择是允许应用程序在测试版中运行的次数。无论如何,它的日期/时间用户是否总是可以清除应用程序缓存或回溯。检查日期是否在线将是防止滥用的最佳选择
-
连接互联网时无需通知用户,在后台进行。如果服务器时间超过某个日期,则禁止访问该应用并向用户显示 Beta 应用已超过使用日期的消息。
-
感谢 cmets。我们可以在后台进行日期检查,但由于应用程序可以离线工作,因此许多用户的设备都可以离线。
-
如果某些用户将时钟倒转,问题有多严重?大多数用户不会这样做。通常,玩时钟的用户无论如何都不会付费。
-
不要在同一个主题中提出新问题,你应该创建一个新问题
标签: android date security android-security android-date