use*_*471 3 security vbscript web-services asp-classic
假设我们正在跟踪Web服务的最终用户IP:
ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If ip = "" Then
ip = Request.ServerVariables("REMOTE_ADDR")
End If
Run Code Online (Sandbox Code Playgroud)
我已经读过这是检索最终用户IP的最佳方法,因为它甚至适用于透明代理上的用户.
如果我们使用最终用户IP地址来过滤恶意用户,那么上述方法是否有任何安全隐患,而不是仅使用Request.ServerVariables("REMOTE_ADDR")?
例如,如果我们通过最终用户IP禁止恶意用户,他们是否可以通过代理轻松更改其IP并继续使用我们的Web服务?
在此先感谢您的帮助.
REMOTE_ADDR
由Web服务器根据客户端的连接生成. HTTP_X_FORWARDED_FOR
基于客户端发送的HTTP头.
您不能信任来自客户端的输入,尤其是容易伪造的输入,例如HTTP标头.客户可以在该标题中添加任何内容HTTP_X_FORWARDED_FOR
.