首页 > 解决方案 > 是否有正确的方法通过进行 IP 匹配来进一步保护数据?

问题描述

所以这是我正在考虑的一种方法:

问题: - 在您尽一切可能保护您的服务器和客户端应用程序之后。我想添加一个额外的层,以确保即使用户无法访问他们的数据,他们也只能真正影响他们自己在共享数据库中的小空间。(显然身份验证已经到位,但这是authenticatino模型的基础)

我想到的解决方案: - 我想添加一个“隐藏”字段来存储用户 IP 地址。这意味着当用户输入正常的密码和用户名时,他们还必须验证他们使用的机器是否是他们自己的,因此我们通过从他们的请求中获取该 IP 地址来存储该 IP 地址。稍后如果他们需要再次登录,他们可以,但如果他们想检索数据,路由器服务器上的查找将从请求中接收 IP,并将其作为过滤参数的一部分添加到消息中。一旦它查询数据库,如果找到用户想要的 IP + 数据的组合,它就会将其发回。

如果检测到不同的 IP,则服务器中不存在任何数据,因此不会发回任何内容。这最初将在登录时完成,并会触发一封邮件给用户,以验证他们使用的机器是受信任的。

有没有更简单的方法?这是过分的吗?谢谢,亚历克斯

在 Express 中尝试了 ip-request 模块,工作正常,但想知道我使用它的方式是否存在潜在的安全威胁,它将在继续之前实施。

标签: node.jsexpresssecurity

解决方案


首先,您的服务器看到的 IP 地址通常不是用户所在计算机的实际 IP 地址,因为在它们之间通常有一个 NAT 设备或代理将用户计算机的专用网络 IP 地址映射到公共 IP 地址在互联网上使用。无论您是在家庭网络上使用计算机、在工作中使用计算机、在星巴克通过 WiFi 连接等等,这都是正确的……

User Computer (private IP 192.168.1.x) => Gateway (some public IP address) => Your server

如果同一台计算机一遍又一遍地以相同的方式连接到您的服务器,那么每次它“可能”都会被分配相同的公共 IP 地址。但是,在其他情况下可能不会。

如果同一台计算机完全是移动的(手机、笔记本电脑、平板电脑)并以不同的方式(WiFi、蜂窝网络)连接到互联网,那么每次从不同位置连接时,它可能会显示为不同的 IP 地址。

因此,在许多移动设备和用户甚至可以从多个设备访问服务的时代,IP 地址并不是衡量这是否存在风险的好方法。

此外,在共享 NAT(例如 WiFi 热点或从公司网络连接)的情况下,许多不同的用户可能看起来都来自同一个公共 IP 地址。

我不建议使用 IP 地址作为任何安全指标。您只会得到许多错误指示,表明自上次访问以来发生了更改的无效 IP 地址,您甚至可能会得到误报,即不同用户与合法用户出现在同一 IP 地址上。在 NAT 和移动化的今天,公共 IP 地址和用户之间没有一一对应的关系。试图假装存在会导致各种问题。


推荐阅读