如果这很愚蠢,请原谅我,而不是我的领域。
说我想为我的用户提供一个API:
www.mydomain.com/USER-API-KEY/some-user-data
USER-API-KEY
是每个用户唯一的16个字符和数字的唯一ID。
说用户使用它将数据写入服务器(Amazon / Firebase等)。
为什么这个API被认为是不安全?是否可以通过保持这种简单性来使该API免受攻击更安全?
答案 0 :(得分:1)
您承担什么风险完全取决于您。在URL中传递敏感信息(例如访问令牌或api密钥)有其风险,但是您可以决定接受那些风险。
一些注意事项:
URL被记录。他们会登录到中间代理,也会登录到实际为您的API服务的服务器上。攻击者可能有可能访问这些日志,从而破坏了API密钥。
并不是真正与安全相关的,但是API密钥的更改将使您的方案中的所有缓存结果无效,如果密钥经常更改(如应更改,则可能会对性能产生潜在影响,尤其是当您更改通过网址发送)。
您的某些客户可能有明确的策略,禁止在URL中发送敏感数据。这意味着您的解决方案中的风险不仅是技术风险,而且如果您愿意的话,它还具有“客户关系方面”。
因此,简而言之,安全性最佳做法是不要发送类似的API密钥。如果这样做,它很可能会在以后的渗透测试中被发现为漏洞。
您仍然可以决定这样做,说实话,这可能不是(如果有的话)您的应用程序被黑客入侵的方式。但是接受这种风险应该是一个明智的决定。