4

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

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

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

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

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

4

3 回答 3

2

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

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

如果服务器为每个项目生成一个哈希值,这将是很好的,这个哈希值可以允许用户向其他用户显示他真的购买了该项目。

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

我希望你理解我的回答,我的回答可以帮助你;-)

于 2011-10-25T13:26:40.463 回答
0

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

于 2011-10-25T13:29:22.927 回答
0

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

于 2011-10-25T13:25:46.357 回答