iPhone:如何修复基于更改设备日期的作弊行为?有服务器可以获取时间吗?

标签 iphone datetime time nsdate ipod

我有一款 iPhone 游戏,它会随着时间的推移分配游戏内货币,有人发现您可以更改设备上的日期以提前获得奖励。

我发现蓝 Sprite 村也有类似的问题,他们以某种方式检测到了篡改行为。有谁知道他们是怎么做到的?我唯一能想到的是从外部服务器获取时间,这需要设备在线,但我想这总比没有好……有人知道我在哪里可以找到一个只告诉你时间的服务器吗?

最佳答案

您可以使用 NTP 服务器来告诉您时间。

直到有人使用代理服务器来找出您尝试连接的 NTP 服务器,然后欺骗 NTP 响应...正如其他人提到的,响应很容易解析,因此很容易伪造。

更好的解决方案是使用 Google App Engine(免费)之类的工具,向您的应用程序发送某种加密响应,该响应将归结为服务器时间。如果客户端时间与该时间偏差太大,应用程序将简单地使用服务器时间进行计算。那么即使他们拦截了请求,他们也不容易发回正确的响应。

但基本上在任何网络游戏中,你必须始终假设客户端在撒谎。防止出现问题的唯一真正方法是让所有内容都通过服务器,因此客户端无法决定它突然变得富有并让任何其他客户端同意它是这样......

关于iPhone:如何修复基于更改设备日期的作弊行为?有服务器可以获取时间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662040/

相关文章:

iphone - 如何使 iAd 集成 iPhone 应用程序在以前版本的 iPhone 操作系统上运行?

ios - 获取错误 "Cannot load module ' MapKit' 作为 'MapKit'“

javascript - 如何将当前日期转换为数字格式?

postgresql - 在 Amazon Redshift 中转换时区

date - 用当前日期初始化模型

iphone - 从网络获取图像到 UIImageView 不起作用

iphone - 一种在压缩前从 UIImagePickerController 检查所选视频文件的方法?

来自 Facebook API 的 PHP 日期转换

javascript - 移除 HTML5 输入类型 ="time"出现的箭头

c - 我如何在这个简单的 C shell 中设置超时?