首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >防火墙反向dns查找错误node.js dns

防火墙反向dns查找错误node.js dns
EN

Stack Overflow用户
提问于 2018-01-31 17:29:03
回答 1查看 937关注 0票数 1

你好,Stackoverflow社区!:)

我在Firebase上运行了一个云函数,它充当API,还有另一个服务器(fitbit.com),它偶尔会将数据发布到我的服务器上。

作为安全特性之一,我想做一个前向确认的反向DNS,它基本上如下:

  1. 我收到来自IP 169.45.142.104的端点上的帖子。
  2. 我执行反向DNS查找来检索服务器的主机名。
  3. 验证这是否返回了fitbit.com的子域(示例中的IP应该解析为‘API-169-45-141-216.efbit.com’)。
  4. 然后,我对该主机名进行DNS查找,并验证它是否解析为原始请求的IP地址。

下面是为节点v6.11.1编写的源代码(它在一个Util类中)。:)

代码语言:javascript
运行
复制
static fcrDns(ipAddress, cb) {
        const reverse = Q.denodeify(dns.reverse);
        const resolve4 = Q.denodeify(dns.resolve4);
        return reverse(ipAddress).then(hostNames => {
            console.log("hostNames: ", hostNames);

            if (!hostNames.every(SecurityUtils._isFitbitSubDomain)) {
                return Promise.reject("Hostname did not end with .fitbit.com");
            } else {
                return Promise.all([...hostNames.map(hostName => {
                    return resolve4(hostName)
                        .then(resolvedAddresses => {
                            if (resolvedAddresses.every(address => address === ipAddress)) {
                                return Promise.resolve(true);
                            } else {
                                return Promise.reject("Resolved address did not equal to initial IP address");
                            }
                        })
                })]);
            }
        });
    }

    static _isFitbitSubDomain(hostName) {
        return hostName.endsWith(".fitbit.com");
    };

现在,问题是:如果我只在本地主机上(包括在windows和linux主机上)提供防火墙服务,这是非常有效的。

但是,一旦将其部署到Firebase并执行,我将得到以下错误:

代码语言:javascript
运行
复制
{ Error: getHostByAddr ENOTFOUND 169.45.142.104
    at errnoException (dns.js:28:10)
    at QueryReqWrap.onresolve [as oncomplete] (dns.js:219:19)
  code: 'ENOTFOUND',
  errno: 'ENOTFOUND',
  syscall: 'getHostByAddr',
  hostname: '169.45.142.104' }

就我所理解的节点的源代码而言,这意味着它不能执行反向IP查找。

但是,正如我所测试的,解析主机名是正确的。

可能有一个服务器设置,它可以阻止进行反向dns查找,但允许解析?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-02 17:52:50

我与云函数后端团队进行了交谈,他们目前不允许反向DNS查找。这是可以更改的内容,因此我将鼓励您使用提交功能请求,并详细说明为什么这对您很重要。还提供了一个链接到这个问题的SO。

编辑:看起来修改是为了允许这样做的,但我不清楚它是否已经可用,或者什么时候可以使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48548085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档