让 Node 应用使用 ISP Not Found 而不是 404

Have Node app resort to ISP Not Found instead of 404

我有一个 Meteor 应用程序,我将其列入特定 IP 的白名单。

所以像

handleRoute(req,res) => {
    if (req.HEADERS[x-forwarder-for]) === WHITELISTED_IP) {
       next(res,req)
    } else {    
        res.writeHead(404);
        res.end();
    }
 }

这有效,你会得到一个 404 页面。

但是,这可能会使攻击者知道该站点至少存在。如果可能的话,我想进一步混淆它。

例如,如果您访问某些 obscure site that doesn't exist,您可能会看到一些来自您的 ISP 的初始页面。我猜这是 ISP 在 DNS 查找失败时设置的。

我想知道是否还有可能以某种方式展示它。这将使用标准节点 HTTP 请求 req,res API。 谢谢!

不,那不可能。一旦控制流到达您的 Node 应用程序,攻击者就会知道它的存在。他们将能够区分浏览器在无法在 DNS 中查找域名时呈现的页面与您 return 给他们的页面之间的区别。此外,他们不会使用浏览器来调查目标,因此他们会比浏览器中的用户看到更多。

我认为最好的办法是复制并粘贴网络托管商在购买域时放置在域上但尚未托管页面的那些烦人的域停放页面之一。理想情况下,您会使用您用来获取域名的域名注册商的停放页面,因为这将是最可信的。当然,尝试复制整个消息(包括 headers),而不仅仅是 HTTP body。与提供虚假的“无法解析域”页面的想法不同,这个应该是完全可能的。