我可以信任从ServerVariables [“REMOTE_ADDR”]返回的值

时间:2013-03-21 07:57:30

标签: asp.net http iis asp.net-web-api

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

我可以信任该地址,还是有ServerVariables["REMOTE_ADDR"]返回的方式,例如161.121.222.223并且客户真的在其他地方?

2 个答案:

答案 0 :(得分:3)

  

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

     

您可能需要担心的一种情况是,如果您在反向代理之后,在这种情况下,REMOTE_ADDR将始终是代理服务器的IP,并且用户IP将在HTTP标头中提供(例如X-转发,对于)。但对于正常使用案例,REMOTE_ADDR很好。

取自:Is it safe to trust $_SERVER['REMOTE_ADDR']?

答案 1 :(得分:0)

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