REST API 基于时间的基本安全

REST API basic security based on time

我有一个可通过移动应用程序访问的 REST API。我已经包含了一些基本的身份验证配置,其中之一是基于时间的;客户端 (Android) 获取系统当前时间 (Java 命令 System.getCurrentTimeMillis() --> 当前时间与 1970 年 1 月 1 日午夜 UTC 之间的差异,以毫秒为单位),当服务器处理调用时,它也做同样的事情,然后比较两个值,如果差异小于 10 秒,则认为调用有效。

问题是我看到一些(实际上只是少数)调用,其中客户端和服务器之间的差异大约为 1 小时,这让我觉得也许这个 Java 函数可以以某种方式受设备上某些内部配置的影响...

谢谢!

现在,我建议您使用像 Joda Time 这样的库(或 java 8 上的新日期和时间 api)。

Java 的旧时光 api 有几个问题可能会影响到您。我现在能想到的一个是夏令时。取决于你的服务器 配置可能会导致您描述的情况。

顺便说一下,您所做的不是身份验证。充其量是授权。您允许根据创建日期处理请求。