假设我有一些代码可以通过 JSON 服务调用创建 HTML 页面。
如何防止其他人复制粘贴源代码、调用服务并获取第一个用户的结果集?
如果我将域作为服务的参数或获取其他内容(例如用户名或密码),它们也可以被复制和粘贴并用于另一个域。
我没有找到阻止这种情况的方法,还是我错了?
你是对的,没有办法绝对阻止这种情况,但你可以让它变得更加困难,你可以让它变得更加困难,这样你就可以识别滥用 API 或自己被黑客攻击的用户。
做到这一点的方法是使用证书(非对称加密)。每个客户端都有一个私钥和一个公钥,对于该客户端来说是完全唯一的。公钥是公共知识(通常存储在服务器上或第三方数据库(如 Comodo 或 Verisign)中)。私钥对客户端来说是私有的。服务器还有一个私钥/公钥。
每次客户端发出请求时,该请求都会使用服务器的加密公钥,并用客户端的签名(加密)私钥。服务器的密钥确保只有服务器可以解密请求,而客户端的密钥确保只有客户端可以加密该请求,以便使用客户端的密钥完全可逆公钥.
这意味着恶意用户只能以他/她自己的名义发出请求,因此您会知道谁在搞乱,或者您知道哪个用户受到了威胁,以便您可以通知他/她并禁用他们的帐户。这还可以防止其他用户嗅探线路并恢复其他用户的请求以执行重放攻击。
还有其他方法可以实现此目的,例如使用安全 cookie 来跟踪用户请求。我将发布一些有关安全 cookie 实施的有用问题的链接。其中一些适用于其他平台,但概念是相同的。
这是很多需要考虑的内容。您可能会想要多读一些书在开始实施之前。
其他有用的问题:
- REST Web 服务身份验证令牌实施
- 在 iPhone 应用程序中使用 REST API 时的安全性
-
https://stackoverflow.com/questions/15390354/api-key-alternative/15390892#15390892 链接已损坏。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)