我开发了一个简单的 TCP 聊天系统,它运行良好。但我需要为该服务器添加一个新功能,即客户端验证。我计划使用客户端的 IP 地址来验证用户。这样我就可以应用“一个 IP = 一个用户或客户端”的条件
答案1
不要使用 IP 地址作为身份验证因素。使用应用层身份验证,目前已有许多成熟的实现。
IP 地址不是秘密,加密性不强,可以被伪造,不是唯一的(NAT),并且可能会发生变化(重新编号、IPv6 临时地址)。
IP 地址在其他方面也很有用。例如,速率限制、用户行为风险评分或仅允许列出某些前缀。但对于身份验证本身来说并非如此。