iphone - 安全网游http get/post请求(如何避免重复发送相同的http-req)

标签 iphone objective-c http https httpwebrequest

在我的游戏/应用程序 (iPhone) 中,客户端向游戏 http 服务器发送 http 请求(get 或 post)。 请求具有这种形式:

gameserver.com/userId/givebonus/100

例如,这会给 userId 100 的奖励。

现在,我们对服务器请求进行加密,它会变成这样:

gameserver.com/42c34c234c234/ghjghjg4hj32g42jh2/424j23gh4h234h2j34j23

我不会为一些试图解密它以揭示所有这些含义的黑客而大惊小怪, 我担心的是嗅探。 因为一旦黑客知道:

gameserver.com/42c34c234c234/ghjghjg4hj32g42jh2/424j23gh4h234h2j34j23

提供 +100 的奖励它可以不断地不断发送相同的请求

那么如何防止这种情况呢?

与几个 friend 交谈,这些是可能的解决方案,但它们都不容易实现或更安​​全:

  • 移动所有(大部分)逻辑服务器端。
  • 握手第一个请求并仅响应该 mac 地址。 (我认为这行不通)
  • 动态更改私有(private)加密 key ?怎么样?
  • 加密整个请求,基本上使用 https? (不知道怎么办 :( )

我敢肯定有一个我没有看到的更简单的答案 :P

最佳答案

安全性很难。当您隐含地信任客户端时,安全性是不可能的。你需要考虑你愿意付出多少努力来保护它,以及如果它被泄露你会损失多少。因为除非您基本上在服务器端运行所有内容,否则您可以预料它受到损害。

如果您只想阻止重放攻击,只需在命令预加密中添加递增的“请求计数”并丢弃任何重复请求即可。

但是不要误以为这是某种“安全”,因为它不是

关于iphone - 安全网游http get/post请求(如何避免重复发送相同的http-req),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3492984/

相关文章:

iphone - applicationWillEnterForeground 后黑屏

ios - 展开有关在自动布局中更改方向和屏幕尺寸的 View

iphone - 更新 SQLite 中的浮点值

iphone - 在 UIImageView 中旋转图像

objective-c - 是否可以在 Xcode 4.3 中使用 NSArray、NSDictionary 和 NSNumber "literals"? (LLVM 4.0)

ios - Xcode - 如何在不更改 UIScreen 大小的情况下添加 xib 启动屏幕

iphone - 仅限横向应用的最佳实践?

javascript - 有没有办法在每个 $http.get 上禁用 $digest 的触发?

rest - 应该从 REST API 返回哪个 HTTP 代码?

javascript - 无法在 'send' 同步上执行 'XMLHttpRequest'