首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTTP欺骗?

HTTP欺骗?
EN

Stack Overflow用户
提问于 2013-01-30 06:54:52
回答 3查看 6.5K关注 0票数 2

我有两个问题:

1)在PHP中,当程序员使用"REMOTE_ADDR“变量来获取web客户端的IP地址时,该IP地址是从HTTP头中的一个字段中获取的吗?还是从哪里来的?

2)如果客户端的IP地址取自HTTP报头,web客户端是否可以“欺骗”或“更改”HTTP报头以隐藏其真实IP地址?

非常感谢。

EN

回答 3

Stack Overflow用户

发布于 2013-01-30 06:56:11

REMOTE_ADDR是从TCP/IP连接中提取出来的,很难被欺骗。

但是,如果您的服务器位于反向代理之后,它可能是不准确的。在这种情况下,你必须读取X-Forwarded-For头,如果你的代理不总是覆盖它,它很容易被欺骗。

票数 5
EN

Stack Overflow用户

发布于 2013-03-30 01:02:18

$_SERVER"REMOTE_ADDR“:正在从TCP连接中的IP套接字获取IP ...欺骗你的真实IP的方法很容易使用远程服务器,例如:“TOR network”。

示例:如果我想向站点服务器发送请求(但我需要欺骗我的IP),我使用:

代码语言:javascript
运行
复制
<?php

$ip = '127.0.0.1';
$port = '9051';
$auth = 'PASSWORD';
$command = 'signal NEWNYM';
$fp = fsockopen($ip,$port,$error_number,$err_string,10);
if(!$fp) { echo "ERROR: $error_number : $err_string";
    return false;
          } else {
                     fwrite($fp,"AUTHENTICATE \"".$auth."\"\n");
                     $received = fread($fp,512);
                     fwrite($fp,$command."\n");
                     $received = fread($fp,512);
                 }
 fclose($fp);
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, "http://whatismyip.org"); //ipimg.php
 curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1:9050");
 curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_VERBOSE, 0);
 $response = curl_exec($ch);
 curl_close($ch);
 echo $response;
?>

这段代码演示了我如何使用TOR服务欺骗我的IP,该服务使用SOCKS5 / SOCKS4向另一台服务器发送请求,而不使用我的真实IP。我正在使用whatismyip.org对其进行测试,以查看IP的变化。

玩得开心。

票数 3
EN

Stack Overflow用户

发布于 2013-01-30 06:56:58

1) $_SERVER["REMOTE_ADDR"]直接来自TCP连接。

2)只有在非SSL连接上使用中间人攻击才能欺骗$_SERVER["REMOTE_ADDR"] (SSL握手对IP欺骗有一些保护)。

2)来自HTTP头的$_SERVER变量以HTTP_和yes为前缀,如果它们包含IP地址,则调用者可以很容易地欺骗它们。您永远不应该信任包含IP地址的$_SERVER["HTTP_*"]变量。

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

https://stackoverflow.com/questions/14593584

复制
相关文章

相似问题

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