Web services Request.ServerVariables(“REMOTE”u ADDR“)与Request.ServerVariables(“HTTP”ux“uforwarded”FOR“FOR”)的安全影响

Web services Request.ServerVariables(“REMOTE”u ADDR“)与Request.ServerVariables(“HTTP”ux“uforwarded”FOR“FOR”)的安全影响,web-services,security,asp-classic,vbscript,Web Services,Security,Asp Classic,Vbscript,假设我们正在跟踪web服务的最终用户IP: ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") If ip = "" Then ip = Request.ServerVariables("REMOTE_ADDR") End If 我已经读到,这是检索最终用户IP的最佳方法,因为它甚至适用于透明代理上的用户 如果我们使用最终用户IP地址来过滤恶意用户,上述方法是否有任何安全隐患,而不是仅仅使用Request.ServerVariabl

假设我们正在跟踪web服务的最终用户IP:

ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If ip = "" Then
    ip = Request.ServerVariables("REMOTE_ADDR")
End If
我已经读到,这是检索最终用户IP的最佳方法,因为它甚至适用于透明代理上的用户

如果我们使用最终用户IP地址来过滤恶意用户,上述方法是否有任何安全隐患,而不是仅仅使用Request.ServerVariables(“REMOTE_ADDR”)

例如,如果我们通过最终用户IP禁止恶意用户,他们是否可以通过代理轻松更改其IP并继续使用我们的web服务


提前感谢您的帮助。

REMOTE\u ADDR
由web服务器根据客户端的连接生成
HTTP\u X\u FORWARDED\u FOR
基于客户端发送的HTTP头


您不能信任来自客户端的输入,尤其是容易伪造的输入,例如HTTP头。客户端可以将任何内容粘贴到
HTTP\u X\u转发的
头中。

如果用户使用的是透明代理,则上述代码将获得真实的IP地址。但是,如果他们使用的是匿名代理(比如匿名器),那么就无法获得用户的实际IP地址