我有一个小的 GAE 应用程序,我的 Android 应用程序的后端。我在应用程序中有一个 servlet,它从数据存储中提取数据并将其发送给用户。我不希望任何人能够使用这个 servlet,所以我在应用程序中存储了一个私钥,并且对于每个请求,我都会发送一个令牌 - 私钥的哈希字符串和当前毫秒,以及毫秒我在哈希中使用过。服务器正在获取毫秒和私钥,并将其与令牌进行比较。如果一切顺利,服务器会将毫秒存储在 a 中HashSet
,这样它就会知道不再使用它。(有人可以嗅探设备数据 - 并一遍又一遍地发送相同的毫秒和令牌)。
一开始,我在Servlet类中持有一个静态字段,后来发现是错误的,因为这个字段没有持久化,当实例被销毁时,所有数据都丢失了。
我已经阅读过Memcache
,但这不是一个最佳解决方案,因为据我了解,Memcache
如果应用程序内存不足,或者即使服务器出现故障,也会删除其中的数据。
我不想使用数据存储,因为它确实会使请求变慢。
我想我不是第一个面临这个问题的人。我该如何解决?