在 VPN 设置中信任 request.remote_addr 是否安全

Is it safe to trust request.remote_addr in VPN setup

我有一个 VPN 设置,客户端使用预共享证书进行身份验证。我希望这些客户使用我在烧瓶中编写的 http api,但我需要他们先进行身份验证,以 return 正确地从数据库中获取数据。

如果我从 VPN 配置中知道每个客户端的 IP 地址,使用 request.remote_addr 或 request.environ['REMOTE_ADDR'] 来识别用户是否安全?

例如

user = select_user(request.remote_addr)

其中 select_user(IP) 将 VPN 客户端映射到 IP 地址。

REMOTE_ADDR 将永远是 TCP 连接发射器的 IP,潜在的攻击者无法修改它(代理除外)。但是如果有人可以访问您用户的网络之一(因为他们将拥有有效的 IP),就会存在漏洞。所以如果你真的可以信任你的用户个人网络安全,是的,它是安全的,否则就不是。