如果客户端 IP 白名单,我还应该使用 API 键吗
Should I still use API key if client IP white listed
这是我第一次写public面向网络api。
我的经理建议不要将 API 密钥用于 Web API 我写信是因为我们正在将使用 api 的客户端的 IP 列入白名单,但没有认为我们需要打扰 API 键(即额外的时间和复杂性)
我对别人的意见很感兴趣
我认为我们确实需要 API 密钥,原因如下(按重要性降序排列)。
允许根据 API 键跟踪和限制来自客户端的请求。他们的 ip 可能会不时更改,但 api 键不应该。因此,使用 api key
以后的请求报告会更容易
白名单ip可以被仿冒吗?从我所做的阅读来看,我认为将启用 TLS 的事实使这成为不可能,因为服务器和客户端之间的握手已经完成,因此欺骗性 ip 会导致此握手失败?
他没有线索,我原则上应该无视他:-)
我们依赖白名单 ip 的事实是否消除了使用 API 密钥进行单独身份验证的需要(客户端可以访问所有 api,因此不需要授权)?
仅信任 ip 白名单会增加风险:
1) 操作员错误可以将错误的 ip 或 ip 范围列入白名单。
2) 它增加了对客户端的安全要求:没有不安全的软件可以 运行 来自那些机器或可以共享或劫持该外部 ip 的机器。
我想说一个更安全的系统将依赖于 ip 白名单和客户端 ssl 证书。
您的情况可能比较特殊。但是,作为一般规则,我建议不要仅使用 ip 白名单。
这是我第一次写public面向网络api。
我的经理建议不要将 API 密钥用于 Web API 我写信是因为我们正在将使用 api 的客户端的 IP 列入白名单,但没有认为我们需要打扰 API 键(即额外的时间和复杂性)
我对别人的意见很感兴趣
我认为我们确实需要 API 密钥,原因如下(按重要性降序排列)。
允许根据 API 键跟踪和限制来自客户端的请求。他们的 ip 可能会不时更改,但 api 键不应该。因此,使用 api key
以后的请求报告会更容易
白名单ip可以被仿冒吗?从我所做的阅读来看,我认为将启用 TLS 的事实使这成为不可能,因为服务器和客户端之间的握手已经完成,因此欺骗性 ip 会导致此握手失败?
他没有线索,我原则上应该无视他:-)
我们依赖白名单 ip 的事实是否消除了使用 API 密钥进行单独身份验证的需要(客户端可以访问所有 api,因此不需要授权)?
仅信任 ip 白名单会增加风险:
1) 操作员错误可以将错误的 ip 或 ip 范围列入白名单。
2) 它增加了对客户端的安全要求:没有不安全的软件可以 运行 来自那些机器或可以共享或劫持该外部 ip 的机器。
我想说一个更安全的系统将依赖于 ip 白名单和客户端 ssl 证书。
您的情况可能比较特殊。但是,作为一般规则,我建议不要仅使用 ip 白名单。