2011-09-17 69 views
5

后有我目前研究的一个问题:经过一个同事离开了,有一天晚上,他创造了一些文件,basicly他所有的上一个完成的项目工作,老板也没有祈祷,他,被删除。从我所知道的所有访问凭证已被更改。PHP脚本,删除本身完成

是否可以通过设置文件来完成删除任务然后删除相关文件?或者类似的东西会在任务完成后改变代码?这是不可追踪的吗? (我想他可以巧妙地将请求伪装成一个正常的请求,并且我已经浏览了代码库和原始访问日志,并且什么都没找到)。

+7

这就是您使用源代码管理系统的原因。 – OrangeDog

+17

除了版本控制之外,我还建议您向开发人员支付开发人员费用。 :/ –

回答

8

不可能判断这是否是实际发生的事情,但设置删除文件的机制是微不足道的。

这个工作对我来说:

<? // index.php 
    unlink("index.php"); 

这将是一块蛋糕,以建立一个脚本,如果给予一定的GET变量,例如,会删除自身和其他一些文件。

除服务器的访问日志,我不知道的一种方式追查这一点 - 不过,这取决于你的操作系统和文件系统上的反删除工具可能能够恢复文件。

它已经在评论中说,如何防止这种情况 - 使用集中式源代码控制和备份。 (当然,你付的开发人员 - 虽然这种东西可以发生在任何人)

3

是可以通过建立一个文件做删除任务 ,然后删除有问题的文件来做到这一点?

是的。他本可以在服务器上留下一个看起来很神奇的PHP文件,稍后通过网络访问时,会给他shell访问权限。完成该文件时可以自行删除。

在它下面创建一个PHP文件:你的服务器上

<?php 
    if ($_GET['vanish'] == 'y') { 
     echo "You wouldn't find me the next time you look!"; 
     @unlink(preg_replace('!\(\d+\)\s.*!', '', __FILE__)); 
    } else { 
     echo "I can self destruct ... generally"; 
    } 
?> 

PUT和导航。然后再次使用“消失= y”参数导航,看看会发生什么