@eval是什么意思($ _ POST [1])

时间:2016-04-02 14:19:05

标签: php joomla eval joomla3.0

我的joomla网站遭到黑客入侵,我在librarys.php文件的库文件夹中找到了一个文件。当我打开这个文件时,只写一行

NULL

我不明白黑客会得到什么数据。 请建议我。

2 个答案:

答案 0 :(得分:3)

使用这行代码,黑客将能够执行他想要的任何代码。因此,此代码可以读取,更新或删除他想要的任何数据。

我们还不知道他将选择执行哪些代码,因为代码将作为$ _POST参数传递。 $ _POST [1]参数将包含一串可执行代码。然后,将使用此参数调用eval()来执行该代码。

当黑客调用你的页面,将一些代码作为POST参数传递时,他将执行一个名为code injection的攻击。<​​/ p>

现在您知道了,您必须弄明白:

  1. 如果可能的话,为了撤消它已经造成了什么损害?
  2. 什么安全漏洞允许黑客将“eval”代码添加到您的代码库?
  3. 如果您决定还原备份,请确保备份中尚未包含“eval”代码。然后,解决问题#2,因为黑客可能只是重新使用相同的安全漏洞来恢复他的黑客攻击。即使您的备份是干净的,安全漏洞仍然存在。

答案 1 :(得分:0)

我直接使用php docs eval()语言构造非常危险,因为它允许执行任意PHP代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外没有其他选项,请特别注意不要将任何用户提供的数据传递到其中,而不事先正确验证它。 例如

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>

给出结果

This is a $string with my $name in it.
This is a cup with my coffee in it.

在此处详细了解http://php.net/manual/en/function.eval.php