我正在寻找一种方法/NPM包来验证私有/本地/坏地址,输入主机名作为我的REST端点的输入,然后将其存储在DB中。为了避免SSRF攻击,这是必需的。到目前为止,我只是根据regex过滤出主机名。如果我发现主机名以IP开头,我会阻止它,但在某些情况下,此修补程序不会像环回地址那样工作。我找不到任何NPM库来做所有这些验证。有一些包,但他们期望IP作为输入,我已经在过滤。我甚至从regex转到了ipaddr.js包,因为regex变得越来越复杂,难以理解。
有人能在这里指出正确的方向吗?如何验证私密/回送地址的URL?
发布于 2022-03-10 05:06:46
如果您的机器要对用户定义的URL进行请求,并且您希望避免用户在您的专用网络中输入地址,您需要首先解析主机名并确定目标ip。
您不能通过查看主机名就知道主机名是否以私有地址为目标,因为我可以注册'blabla.com‘并将其解析为10.0.0.1。
这方面的最佳实践是制作一个与您的专用网络完全隔离的专用盒来执行所有请求。
https://stackoverflow.com/questions/71419065
复制相似问题