【问题标题】:Why HTTP_X_FORWARDED_FOR shows some ip address in my server为什么 HTTP_X_FORWARDED_FOR 在我的服务器中显示一些 IP 地址
【发布时间】:2016-10-24 10:47:28
【问题描述】:

我已经在我的两台不同的服务器中输入了相同的代码来查找代理服务器,但我的一台服务器显示这是代理服务器。最后我打印了所有服务器变量,我可以看到它在 HTTP 标头中有 HTTP_X_FORWARDED_FOR。为什么会这样?

我以前找到的代码是

<?php

如果 ($_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_X_FORWARDED'] || $_SERVER['HTTP_FORWARDED_FOR'] || $_SERVER['HTTP_CLIENT_IP'] || $_SERVER['HTTP_VIA'] || in_array($_SERVER['REMOTE_PORT'],array(8080,80,6588,8000,3128,553,554)) || @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 2))

{

    echo "Proxy detected";
    //Proxy detected'
}

else
{
    echo "Proxy not detected";
    //No Proxy detected
}

?>

【问题讨论】:

    标签: http proxy server ip http-proxy


    【解决方案1】:

    X-Forwarded-For 通常出于多种原因插入。

    1. 如果您的服务器位于反向代理之后,该反向代理通常会插入 X-Forwarded-For 以识别后端服务器的原始客户端 IP。

    2. 如果客户端位于公司代理(常见)之后,则该代理可能由于多种原因而插入 X-Forwarded-For。它通常不受欢迎,因为它有效地泄露了内部 IP 地址,但如果站点上使用了多个链式代理,它通常会发生。

    3. 如果客户端位于 Internet 上托管的开放代理后面,则该代理可能会插入标头。

    代理也应该添加 Via 标头,但通常不会。

    【讨论】:

    • 我还看到一些客户端试图通过添加 X-Forwarded-For 和反向代理的 IP(例如他们连接的 IP)来绕过一些反向代理限制。大概是为了尝试提升后端的权限。正确配置的反向代理应始终删除任何客户端提供的 XFF 标头,然后再放入自己的标头。
    猜你喜欢
    • 2011-05-24
    • 1970-01-01
    • 2019-03-03
    • 2013-04-24
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    相关资源
    最近更新 更多