2

我有以下问题:我已经了解如何在 iPhone 应用程序和 WebServer(SSL、Https)之间创建安全登录。我的问题是在创建会话令牌后,我如何确保如果黑客拦截它,在随后的 POST 请求中我收到来自同一用户的数据?

我问这个是因为每次发出请求时我都必须发送会话令牌对吗?(能够识别用户)。

我想防止多件事:

  • 会话劫持,有人会嗅探用户令牌并发送数据而不是他(比如高分或其他东西)
  • 使用通常不会从我的应用程序发送的数据进行数据注入,例如 1.000.000.000 高分(可能的分数,但不容易达到)。

我一直在看:

  • 你做了
  • 用户代理(如果它不是来自我的应用程序的应用程序名称,那就不好了,黑客实际上不得不猜测我做了这个检查或以某种方式下载我的 php 文件对吗?)
  • 该应用程序来自 AppStore。如果请求来自未经 Apple 批准的应用程序,那就不行了。我实际上不确定您是否可以对此进行测试。如果这可行,黑客将不得不实际提交一个 AppStore 并下载它以将错误数据插入我的数据库中,我希望没有人有时间这样做。
  • MAC 地址。不确定Apple是否允许。IP 不起作用,因为有效用户可能会更改 IP。

我所看到的 Cookie 可以很容易地追踪并查看其中的数据。

也许我在这里没有问正确的问题,所以实际上可能是我如何确保我收到的数据来自正确的用户和正确的应用程序?

4

1 回答 1

1

围绕您的 POST 请求使用 SSL 的目的是防止第三方在传输过程中进行拦截。如果黑客可以得到它,则意味着令牌在客户端(根设备)、服务器(不安全的应用程序日志记录/调试)上泄露,或者他们破坏了 SSL。(不太可能)

您可以通过捕获设备 UDID(Apple 不喜欢这样)或与源 IP 进行比较来执行一些高级检查,但是对于有问题的安全性改进来说,这将是一个很大的努力。

只要确保所有敏感的东西都在 SSL 中,你应该没问题。

于 2012-10-11T14:43:35.330 回答