我有一个IIS托管的ASP.NET WebAPI应用程序,并使用ServerVariables["REMOTE_ADDR"]
获取客户端地址并识别用户:客户端登录,我将生成包含客户端IP的cookie。在后续调用中,我将从cookie中获取IP,并验证它是否正确。
我可以信任该地址,还是有ServerVariables["REMOTE_ADDR"]
返回的方式,例如161.121.222.223
并且客户真的在其他地方?
答案 0 :(得分:3)
是的,这很安全。它是TCP连接的源IP,不能通过更改HTTP标头来替换。
您可能需要担心的一种情况是,如果您在反向代理之后,在这种情况下,REMOTE_ADDR将始终是代理服务器的IP,并且用户IP将在HTTP标头中提供(例如X-转发,对于)。但对于正常使用案例,REMOTE_ADDR很好。
答案 1 :(得分:0)
是的,它很可靠。它不能被客户端修改,除非只是从另一个IP连接。 (代理服务器)