Asp.net 我可以信任从ServerVariables[";REMOTE\u ADDR";返回的值吗

Asp.net 我可以信任从ServerVariables[";REMOTE\u ADDR";返回的值吗,asp.net,http,iis,asp.net-web-api,Asp.net,Http,Iis,Asp.net Web Api,我有一个IIS托管的ASP.NET WebAPI应用程序和im,使用ServerVariables[“REMOTE\u ADDR”]获取客户端地址并识别用户:客户端登录,我将生成一个包含客户端IP的cookie。在随后的调用中,我将从cookie中获取IP,并验证它是否正确 我可以信任地址吗?或者是否有一种方法可以使ServerVariables[“REMOTE\u ADDR”]返回例如161.121.222.223并且客户端确实在其他地方?是的,它是可靠的。客户端不能修改它,除非只是从另一个I

我有一个IIS托管的ASP.NET WebAPI应用程序和im,使用
ServerVariables[“REMOTE\u ADDR”]
获取客户端地址并识别用户:客户端登录,我将生成一个包含客户端IP的cookie。在随后的调用中,我将从cookie中获取IP,并验证它是否正确


我可以信任地址吗?或者是否有一种方法可以使
ServerVariables[“REMOTE\u ADDR”]
返回例如
161.121.222.223
并且客户端确实在其他地方?

是的,它是可靠的。客户端不能修改它,除非只是从另一个IP连接。(代理人)

是的,很安全。它是TCP连接的源IP,不能通过更改HTTP头来替换

您可能需要担心的一种情况是,如果您在反向代理之后,在这种情况下,远程地址将始终是代理服务器的IP,并且用户IP将在HTTP头中提供(例如X-Forwarded-For)。但是对于正常用例,读取REMOTE_ADDR是可以的

摘自: