网站地图    收藏   

主页 > 后端 > 网站安全 >

WHMCS(PHP程序)防止IP欺骗(伪造X-Forwarded-For) - 网站安

来源:自学PHP网    时间:2015-04-17 10:15 作者: 阅读:

[导读] 前面发布了一篇文章,讲述了多重代理时防止伪造X-Forwarded-For的方法。那只是针对使用代理服务器的情况。虽然没使用代理服务器时,很少会出现这个问题,但是也不排除有些傻逼PHP程...

前面发布了一篇文章,讲述了多重代理时防止伪造X-Forwarded-For的方法。

那只是针对使用代理服务器的情况。虽然没使用代理服务器时,很少会出现这个问题,但是也不排除有些傻逼PHP程序,如果X-Forwarded-For的内容不为空,就会主动拿来当做访客真实IP。使用CDN的话,还能获取访客的正常,IP,但是没使用CDN的话……

这岂不是让那些不法分子有机可乘了吗?

大名鼎鼎的WHMCS就是其中之一!

其实如果要解决这个问题,在该PHP程序中,把类似这样的代码删掉就行:

 $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];

但是,上面所说到的WHMCS,并非开源PHP程序,使用过ioncube加密,除非decode了,否则要修改源程序删代码,是不太可能的。

不过幸运的是,WHMCS有唯一一个没有加密且全局都使用的文件:configuration.php

既然WHMCS要把变量$HTTP_X_FORWARDED_FOR的内容拿来做访客真实IP,那么我们只需在configuration.php里面把$remote_addr(前一篇文章已解释过$remote_addr)赋值给$HTTP_X_FORWARDED_FOR。在configuration.php的<?php    ?>之间加入以下代码:

<?php
……
$_SERVER['HTTP_X_FORWARDED_FOR'] = $_SERVER['REMOTE_ADDR'];
……
?>

最后顺便提一下:本文仅仅是针对未使用反向代理(CDN)的网站防止伪造IP。如果你使用的是虚拟主机,且有CDN,无法修改服务器配置文件,那么只能用那“高风险”的方法去获取访客真实IP了


自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论