欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

REMOTE_ADDR 协议头是不可伪造的

来源:本站整理 作者:佚名 时间:2017-08-23 TAG: 我要投稿

最近,在开发一个采集,怎么也不能用伪造的ip进行采集.网上找了不少资料,对方使用了 REMOTE_ADDR方法获取ip,这个函数是不能伪造的,像HTTP_X_FORWARDED_FOR这个可以获取到伪造的ip,获取代理使用比较多,像 HTTP_CLIENT_IP   这个是客户端带上来的,一般无空值..也可以被伪造出来

今天就是讲给REMOTE_ADDR不可以伪造的,就在curl 中也无法伪造 相对是比较安全的服务端ip获取方法,当然,也有可能被路由伪造 这个不好说,因为REMOTE_ADDR 是底层的回话ip地址,路由是可以发起伪造。所以,网上很多人都在问这个问题,也有很多人不死心,但现实确实是残酷的 也是完美的

 给个演示案例你吧:你就信了
1.将以下代码保存为 Client.php
01
//php脚本开始
02
<?php
03
$ch = curl_init();
04
$url = "http://localhost/ser.php";
05
$header = array( 'CLIENT-IP:208.165.188.175', 'X-FORWARDED-FOR:208.165.188.175, );
06
//声明伪造head请求头
07
curl_setopt($ch, CURLOPT_URL, $url);
08
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
09
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
10
$page_content = curl_exec($ch); curl_close($ch);
11
echo $page_content;?>
2.将以下代码保存为 ser.php
1
//php脚本开始
2
<?php
3
echo getenv('HTTP_CLIENT_IP');
4
echo getenv('HTTP_X_FORWARDED_FOR');
5
echo getenv('REMOTE_ADDR');
6
?>
测试结果为
//html脚本开始
208.165.188.175
208.165.188.175
127.0.0.1
//上面结果可看出,http_client_ip,http_x_forwarded_for 都被伪造了
而remote_addr 还是127.0.0.1 就是客户端ip

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载