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

时间:2015-04-30 05:07:50

标签: api ssl web

这是我第一次写一个面向公众的网络API。

我的经理建议不要将API密钥用于我正在编写的Web API,因为我们白名单列出了使用api的客户端的ip,并且认为我们不需要使用API​​密钥(即额外的时间)和复杂性)

我对其他人的意见感兴趣。

我认为我们确实需要API密钥,原因如下:DESCENDING重要性顺序。

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

  2. 白名单ip可以欺骗吗?从我已经完成的阅读中我认为TLS将被启用这一事实使得这是不可能的,因为服务器和客户端之间的握手已经完成,所以欺骗性IP将导致此握手失败?

  3. 他没有线索我原则上应该忽略他: - )

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

1 个答案:

答案 0 :(得分:0)

仅仅依靠ip white列表会增加风险:

1)操作员错误可以白名单列出错误的ip或ip范围。

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

我会说更安全的系统会依赖ip white列表和客户端ssl证书。

你的案子可能很特别。但是,作为一般规则,我建议不要仅使用ip white listing。