如果这是愚蠢的,请原谅我,而不是我的领域。
假设我想为我的用户提供这样的 API:
www.mydomain.com/USER-API-KEY/some-user-data
其中USER-API-KEY
16 个字符和数字是每个用户的唯一 ID,只有他自己知道。
假设用户使用它来将数据写入服务器(Amazon/Firebase 等)。
为什么这个 API 被认为是不安全的?有没有办法通过保持这种简单性来使这个 API 更安全地免受攻击?
您承担的风险完全取决于您。在 URL 中传递敏感信息(如访问令牌或 api 密钥)有其风险,但您可以决定接受这些风险。
想到的几件事:
URL 被记录。他们会登录中间代理,也会登录实际为您的 API 提供服务的服务器。攻击者可能会访问这些日志,从而破坏 API 密钥。
与安全无关,但 API 密钥的更改将使您的方案中的所有缓存结果无效,如果密钥经常更改,这可能会对性能产生潜在影响(应该如此,尤其是当您在 URL 中发送它们时) .
您的一些客户可能有明确的政策来禁止在 URL 中发送敏感数据。这意味着您的解决方案中的风险不仅是技术性的,如果您愿意,它还具有“客户关系方面”。
所以简而言之,安全最佳实践不是像那样发送 API 密钥。如果这样做,它很可能会在以后的渗透测试中作为漏洞被发现。
您仍然可以决定这样做,老实说,这可能不是您的应用程序被黑客入侵的方式(如果有的话)。但接受这种风险应该是一个明智的决定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句