这是我第一次写一个面向公众的网络API。
我的经理建议不要将API密钥用于我正在编写的Web API,因为我们白名单列出了使用api的客户端的ip,并且认为我们不需要使用API密钥(即额外的时间)和复杂性)
我对其他人的意见感兴趣。
我认为我们确实需要API密钥,原因如下:DESCENDING重要性顺序。
允许根据API密钥跟踪和限制来自客户端的请求。他们的ip可能会不时发生变化,但api密钥不应该。因此,使用api密钥将来更容易报告请求
白名单ip可以欺骗吗?从我已经完成的阅读中我认为TLS将被启用这一事实使得这是不可能的,因为服务器和客户端之间的握手已经完成,所以欺骗性IP将导致此握手失败?
他没有线索我原则上应该忽略他: - )
我们依赖白名单ips的事实是否消除了使用API密钥进行单独身份验证的需要(客户端可以访问所有api,因此不需要授权)?
答案 0 :(得分:0)
仅仅依靠ip white列表会增加风险:
1)操作员错误可以白名单列出错误的ip或ip范围。
2)它增加了客户端的安全性要求:没有不安全的软件可以从这些机器或可以共享或劫持外部IP的机器上运行。
我会说更安全的系统会依赖ip white列表和客户端ssl证书。
你的案子可能很特别。但是,作为一般规则,我建议不要仅使用ip white listing。