默认分类

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

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

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

whmcs-ip

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

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

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

 

但是,上面所说到的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    ?>之间加入以下代码:

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

 

Comments are closed.