如果客户端IP列入白名单,我还应该使用API密钥吗

问题描述 投票:0回答:1

这是我第一次编写面向公众的 Web API。

我的经理建议不要对我正在编写的 Web API 使用 API 密钥,因为我们将使用 API 的客户端的 IP 列入白名单,并且认为我们不需要费心使用 API 密钥(即额外的时间和复杂性)。

我对别人的意见很感兴趣。

我认为我们确实需要 API 密钥,原因如下(按重要性降序排列)。

  1. 允许根据 API 密钥跟踪和限制来自客户端的请求。他们的 IP 可能会不时改变,但 API 密钥不应改变。因此,使用 API 密钥,将来的请求报告会更容易

  2. 列入白名单的IP可以被欺骗吗?根据我所做的阅读,我认为启用 TLS 的事实使得这成为不可能,因为服务器和客户端之间已完成握手,因此欺骗的 IP 会导致此握手失败?

  3. 他毫无头绪,原则上我应该忽略他:-)

我们依赖白名单 IP 的事实是否消除了使用 API 密钥进行单独身份验证的需要(客户端可以访问所有 API,因此不需要授权)?

ssl
1个回答
0
投票

仅信任 IP 白名单会增加风险:

1) 操作员错误可能会将错误的 ip 或 ip 范围列入白名单。

2) 它增加了客户端的安全要求:不安全的软件不能从这些机器或可以共享或劫持该外部 IP 的机器上运行。

我想说,更安全的系统将依赖 IP 白名单和客户端 ssl 证书。

您的情况可能比较特殊。然而,作为一般规则,我建议不要仅使用 IP 白名单。

© www.soinside.com 2019 - 2024. All rights reserved.