【问题标题】:prevent API "spoofing" or "hacking"防止 API“欺骗”或“黑客攻击”
【发布时间】:2011-10-25 13:20:55
【问题描述】:

我已经创建了这个网络应用程序并且我创建了这个 API。为了这个例子,让我们保持简单:

我的应用需要知道用户有多少“信用”。 该 api 有一个调用 get_credits 返回 { credits: 1000 }

现在,我如何防止有人使用主机文件(或其他方法)来创建他自己的返回 { credits: 2000 } 的 api。

我正在考虑插入某种散列,但因为它是 javascript,所以很容易从源中提取散列。我猜握手也是如此。

那么,如何使 api 足够安全?

【问题讨论】:

  • 网页应用由你控制?还是API?或两者?用户如何影响您的网络应用使用的 API?
  • 谢谢大家,我知道我不能相信应用程序或用户,但我希望有一些我还没有想到的方法。我感谢所有的反应。这是一个游戏,信用的数量决定了可用的内容,所以我必须信任应用程序来确定信用的真实性。我会尝试使用一些混淆和一些至少使它尽可能困难:) 谢谢!

标签: security api web spoof


【解决方案1】:

你必须以不同的方式来做,才能拥有一个真正安全的应用程序。你永远不应该相信最终用户的应用程序,因为用户或黑客可能会修改代码。

所以我建议将所有购买等保存在服务器上。因为我现在对您的系统了解不多,所以无法为您提供太多帮助。

如果服务器为每个项目生成一个哈希值,这个哈希值可以让用户向其他用户显示他确实购买了该项目,那就太好了。

请注意,此哈希必须长且唯一,否则用户可能会强行使用它们。

希望你能理解我的回答,我的回答对你有帮助;-)

【讨论】:

    【解决方案2】:

    如果是客户端,您无能为力 - 尽最大努力。但是您必须确保在回邮时验证回复。永远不要相信用户:-)

    【讨论】:

      【解决方案3】:

      我现在要告诉你我的系统是如何工作的。 为了在游戏过程中获得积分,我发出了一个 ajax 请求来加载它们。 ajax 请求调用一个简单的 php 页面,其中有一个“echo $credits;”。所以,破解是不可能的。如果有人修改客户端信用,当他们要求礼物时,我会用 php 检查服务器端信用以确保它们是合法的:P - 请考虑检查您的系统是否容易受到 mysql 注入攻击,以防止有人会破解你的信用系统:D

      【讨论】:

      • 你可以用 fiddler 拦截通话并返回你想要的任何东西
      猜你喜欢
      • 2015-10-18
      • 1970-01-01
      • 2017-01-12
      • 2017-05-14
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多