我有一个IIS托管的ASP.NET WebAPI应用程序,im使用ServerVariables["REMOTE_ADDR"]获取客户端地址并识别用户:客户端登录后,我将生成一个包含客户端IP的cookie。在随后的调用中,我将从cookie中获取IP,并验证它是否正确。
我可以信任这个地址吗,或者有没有一种方式可以让ServerVariables["REMOTE_ADDR"]返回,比如161.121.222.223,而客户端真的在其他地方?
发布于 2013-03-21 16:05:49
是的,它很安全。它是TCP连接的源IP,不能通过更改HTTP标头来替换。
您可能需要担心的一种情况是,如果您在反向代理之后,在这种情况下,REMOTE_ADDR将始终是代理服务器的IP,而用户IP将在HTTP头中提供(例如X-Forwarded-For)。但是对于正常的用例来说,阅读REMOTE_ADDR就可以了。
发布于 2013-03-21 16:02:44
是的,它是可靠的。客户端不能修改它,除非简单地从另一个IP连接。(代理)
https://stackoverflow.com/questions/15542119
复制相似问题