Android:如何将pw/security添加到手机的时间/日期设置中,以防止用户更改它



我的应用程序将在列表视图中显示"打卡"。当用户单击该项目时,它将从手机本身获取时间/日期并将该数据发送到服务器。我更喜欢这样做而不是使用服务器时间,因为如果他们没有信号/接收,他们将无法打卡。我想为时间/日期设置本身添加密码安全性,以便用户在打卡时无法利用更改时间。我怎样才能做到这一点?

谢谢

我不认为你可以这样做,但你可以交叉检查时间。

当您"打卡"时,还可以将/proc/uptime 作为文本文件打开并读取其中的值。 我相信这是在几秒钟内。 当您下班打卡时,重新读取该值并使用差异作为交叉检查。 如果服务器也可用,请从服务器也检查时间(或立即报告打卡)

如果手机崩溃或在此期间关闭电源,则正常运行时间的差异可能小于您通过普通时钟记录的时间差异。 在这种情况下,正常运行时间的差异可能小于普通时钟(可能是负数),因此,如果您的打卡是在无法访问网络时间的情况下完成的,您的软件可能必须有一种方法来将该特定结果报告为未经验证,并跟踪每个用户的未验证数量,以便在它变得过多时标记以供人工审查。

可以想象,用户可以编译和安装一个关于正常运行时间的内核,但那个人也可能绕过你会做的大多数其他事情。

我建议只向服务器发送消息"用户 X 想要打卡"。服务器将使用其本地时间进行"打卡"。这样,您将完全忽略设备的时间,并更好地控制您的基础架构。

通常,如果您希望某些内容尽可能安全,请不要在客户端执行此操作(除非绝对必须这样做)。在这种情况下,用户可能会在他的设备上获得root,并使用一些命令行魔法用虚假的日期/时间来欺骗您的服务器。这并不难。而且您将无法预测"时间保护"的所有智能解决方法。

您可以将服务设置为每分钟(左右)运行一次,以检查时间。 如果时间不是最后一次检查后的~1分钟,则可能已更改。 此时,您应该与服务器确认,以确保差异不是由重新启动手机引起的。

如果您发现时间已更改,则可以将其更改回来或使用主应用程序记录此时间,并标记"用户"以进行纪律处分。

相关内容

  • 没有找到相关文章

最新更新