首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Request.ServerVariables("HTTP_X_FORWARDED_FOR")与Request.ServerVariables("REMOTE_ADDR")的安全含义

Request.ServerVariables("HTTP_X_FORWARDED_FOR")与Request.ServerVariables("REMOTE_ADDR")的安全含义
EN

Stack Overflow用户
提问于 2008-11-25 16:49:28
回答 2查看 4.1K关注 0票数 3

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

代码语言:javascript
复制
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服务?

提前感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-11-25 16:54:40

REMOTE_ADDR由web服务器根据来自客户端的连接生成。HTTP_X_FORWARDED_FOR基于客户端发送的HTTP头。

您不能信任来自客户端的输入,特别是容易被伪造的输入,比如HTTP头。客户端可以将任何粘贴到该HTTP_X_FORWARDED_FOR头中。

票数 9
EN

Stack Overflow用户

发布于 2008-11-25 16:57:04

如果用户使用透明代理,那么上面的代码将获得真实的IP地址。但是,如果他们使用匿名代理(如Anonymizer),那么就没有办法获得用户的实际IP地址。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/318069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档