在express,node.js中使用req.ip将IP地址列入白名单是不是安全?

Posted

技术标签:

【中文标题】在express,node.js中使用req.ip将IP地址列入白名单是不是安全?【英文标题】:Is it safe to whitelist an IP address using req.ip in express, node.js?在express,node.js中使用req.ip将IP地址列入白名单是否安全? 【发布时间】:2021-06-28 00:32:48 【问题描述】:

我想将访问我网站的某个部分列入白名单,以便仅适用于来自特定 IP 地址的请求。使用req.ip 按 IP 地址过滤是否安全?对于这样的事情是否有替代的最佳实践?

例子:

const express = require("express");

const app = express();

app.use((req, res, next) => 
  if (req.ip !== "x.x.x.x") 
    return res.status(403).send();
  
  next();
);

app.get("/whitelist", (req, res, next) => 
  res.send("content");
);

app.listen(3000, "localhost", () => 
  console.log("Server is up");
);

【问题讨论】:

【参考方案1】:

不,这还不够。 The IP of the request can be faked。如果有人掌握了您的源代码,并且他们足够关心,他们将能够访问受限路线。

需要密码(或一些验证方式)。

【讨论】:

以上是关于在express,node.js中使用req.ip将IP地址列入白名单是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章

Express - req.ip 返回 127.0.0.1

在 node.js/express 中使用 EJS 显示图像

在 Node.js + Express 中使用 Promise 处理错误

使用 express.js 在 node.js 中提供 html 的最佳实践是啥?

在 JWT 中存储秘密信息,使用 Node.js - Express 后端

Express 和 node.js 中的 HTML?