因此,我有一个运行JavaScript应用程序的web页面,以及一个应用程序对其发出HTTP请求的web服务。该服务使用访问令牌来验证用户的身份,但现在我正在讨论如何防止授权用户不适当地使用API。也就是说,如何阻止恶意用户简单地检查其浏览器中的传出通信量,复制服务url和他们的访问令牌,并将其用于对服务进行垃圾邮件调用?
有什么标准的方法来防止这种滥用吗?我想我可以隐藏或加密用户的令牌,这样他们就看不见了,但这似乎是不可能的。
干杯!
发布于 2017-07-26 17:39:00
也就是说,如何阻止恶意用户简单地检查其浏览器中的传出通信量,复制服务url和他们的访问令牌,并将其用于对服务进行垃圾邮件调用?
没什么。用户完全控制客户端应用程序。您不能阻止他们提取令牌、修改JS代码或仅仅构建他们自己的自定义客户端。即使您严重混淆了代码,它们最终也可以捕获对API的请求并在稍后重放它们。
有什么标准的方法来防止这种滥用吗?
保护API不受滥用的常见方法是限制利率。例如,您可以在一定的时间范围内限制每个用户所允许的请求数量,或者根据IP地址建立限制。但是,您不能阻止他们在应用程序之外使用API。
另见:
发布于 2017-07-26 19:50:09
标准的方法是通过服务器“重新代理”外部API调用。它还用于提供非CORS API集成、隐藏秘密API密钥、允许服务提供者更改而无需重构客户端代码以及安全性。
由于所有调用现在都经过您的服务器,因此您可以根据需要执行或拒绝它们,基于身份验证、速率限制或实际上任何其他类型的规则(您可以想到并编写代码)。
您还可以实现应用令牌和同步允许,以便只有您的应用程序可以使用您正在(重新)服务的“新”API。没有重新代理,你必须依靠用户诚实和合法。
https://security.stackexchange.com/questions/166105
复制相似问题