我正在开发一个可以访问我们用户提供的API密钥的应用程序。该应用程序代表我们的用户进行API调用。
我们使用的API允许用户将可以使用其API密钥的IP地址列入白名单。我当时想告诉我们的用户将应用程序的IP地址列入白名单,以进一步增加安全性,以便仅允许来自我们IP地址的请求。
但是我读到欺骗IP地址相当容易,并且考虑到我要告诉我们的用户将哪些IP地址列入白名单(这意味着,一个不好的演员不必费劲去查看哪个IP地址是有效的),我想知道这是否值得努力?
如果恶意行为者以某种方式获取用户的API密钥,那么IP地址白名单是否真的可以增加任何有意义的安全性?还是对坏演员来说充其量只是个小麻烦?
谢谢!
答案 0 :(得分:2)
向某人发送带有伪造源地址的数据包很容易,但是要获得响应以将其路由回您则要困难得多。换句话说,如果API要求在源和目标之间建立连接,则通过源IP限制访问非常有效。在TCP之上运行的所有内容都需要这样的连接。如果您的API使用UDP(不太可能)并且没有验证请求来源的机制,那么它就无济于事。
此外,您可能想在这里尝试问同样的问题-https://security.stackexchange.com/