Использование PHP для поиска файлов, чтобы найти определенные файлы и быстро удалить их - PullRequest
0 голосов
/ 01 мая 2019

Мне нужно скопировать контент с моего сайта, чтобы создать другую систему, потому что тема продолжает хакаться.Хакер продолжает помещать .ico-файл, который является вредоносной программой ...

Поэтому мне нужно создать php-файл, который будет всегда искать файлы НЕ НАЗВАННЫЕ favicon.ico и удалять их, если он их найдет.

Существует ли быстрый способ поиска в каждом каталоге в public_html файлов со скрытыми именами:. *. Ico?Кажется, они начинают с.затем разные имена, затем .ico

, поэтому всегда:. *. ico

, но без имени: favicon.ico Так что просто код для удаления всех файлов с использованием PHP в public_html, которые называются .ico, ноне названный favicon.ico

Я думаю, что unlink будет работать, но как мне сделать так, чтобы он не удалял favicon.ico?

Кто-нибудь знает?Я почти закончил копировать весь контент, чтобы создать другой веб-сайт, удалить весь веб-сайт и перенести домен на новый сервер, чтобы он больше не мог быть взломан ... но он продолжает взламываться, поэтому мне нужно создать работу cronпродолжать искать .ico-файл для удаления.

Заранее спасибо, если вы можете указать мне в правильном направлении.:)

Я искал в Интернете, как, но не нашел его.Нужно получить его быстро, потому что его продолжают взламывать каждые несколько часов.

unlink("/home/path/public_html/*.ico");
//Deletes favicon.ico too... right?

не проверял его, потому что я думаю, что он удалит файлы ico, которые я не хочу удалять.

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

я думаю, что вам нужен рекурсивный скрипт для выполнения работы ...

вы можете попробовать это:

function listFolderFiles($dir){
    $ffs = scandir($dir);

    unset($ffs[array_search('.', $ffs, true)]);
    unset($ffs[array_search('..', $ffs, true)]);


    $search_text = '.ico';

    array_filter($ffs, function($el) use ($search_text) {
        return ( strpos($el['text'], $search_text) !== false );
    });

    // prevent empty ordered elements
    if (count($ffs) < 1)
        return;

    echo '<ol>';
    foreach($ffs as $ff){
        echo '<li>'.$ff;
        if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
        echo '</li>';
    }
    echo '</ol>';
}

listFolderFiles('Main Dir'); //your directory ...

проверить вывод, если вам это нужно ... и добавитьОтмена ссылки на путь и файл в списке ...

0 голосов
/ 01 мая 2019

Функции типа unlink() требуют точного имени пути, они не расширяют подстановочные знаки автоматически.

Используйте glob(), чтобы получить список файлов, соответствующих шаблону, затем вы можете использовать array_map(), чтобы вызвать функцию для каждого из них.

array_map('unlink', glob("/home/path/public_html/*.ico"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...