PHP скрипт, который удаляет себя после завершения - PullRequest
5 голосов
/ 17 сентября 2011

Есть проблема, которую я сейчас изучаю: после ухода коллеги однажды ночью некоторые файлы, которые он создал, в основном вся его работа над завершенным проектом, за которую босс не заплатил ему, были удалены. Из того, что я знаю, все учетные данные были изменены.

Можно ли сделать это, настроив файл для выполнения задачи удаления и затем удалив этот файл? Или что-то похожее, что изменит код после выполнения задачи? Это не прослеживается? (Я думаю, он мог бы хитро замаскировать запрос как обычный запрос, и я просмотрел базу кода и необработанные журналы доступа и ничего не нашел).

Ответы [ 2 ]

8 голосов
/ 17 сентября 2011

Невозможно определить, так ли это на самом деле или нет, но настроить механизм удаления файлов тривиально.

Это работает для меня:

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

было бы просто установить скрипт, который, например, при наличии определенной переменной GET, удалял бы себя и числодругие файлы.

За исключением журналов доступа к серверу, я не знаю, как это отследить - однако, в зависимости от вашей ОС и файловой системы, утилита восстановления может восстановить файлы.1009 * В комментариях уже было сказано, как это предотвратить - с помощью централизованного управления исходным кодом и резервного копирования.(И, конечно, платят вашим разработчикам - хотя подобные вещи могут случиться с кем угодно.)

3 голосов
/ 17 сентября 2011

Можно сделать это, настроив файл для выполнения задачи удаления а затем удалить рассматриваемый файл?

Да, это так. Он мог оставить на сервере безобидный php-файл, который при последующем доступе через Интернет предоставил бы ему доступ к оболочке. Получить этот файл для самостоятельного удаления, когда он будет готов, возможно.

Создайте 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";
    }
?>

Поставьте на свой сервер и перейдите к нему. Затем снова перейдите с аргументом "vanish = y" и посмотрите, что произойдет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...