【问题标题】:Delete files with a specific name from all folders available in my public_html folder从我的 public_html 文件夹中可用的所有文件夹中删除具有特定名称的文件
【发布时间】:2018-12-06 22:32:49
【问题描述】:

我的服务器根目录及其文件夹中散布着一个恶意文件。是否有任何方法/ php 脚本可以使用它一次从所有文件夹中删除所有 em。

【问题讨论】:

  • 什么样的名字?是准确的文件名吗?
  • 您真正需要找出的是首先导致它的原因。你在某个地方有一个安全漏洞,这可能是任何事情。
  • @Djanym 是的,它是一个确切的文件名。
  • 黑客很聪明(我没说聪明)。他们将返回另一个文件名。再次;您需要找出他们突破的安全漏洞在哪里。这可以通过服务器完成,并找出密码或某处的后门,和/或您在服务器上使用的包含安全漏洞的脚本。您的问题在这里缺乏细节。
  • 我已经清理了服务器的后门。这些文件现在是空白的。我只是想删除它们以清理我的服务器...

标签: php file-handling


【解决方案1】:
function deleteFileFromDir($dir, $filename){
    $ffs = scandir($dir);

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

    foreach($ffs as $ff){
        if(is_dir($dir.'/'.$ff)){
            deleteFileFromDir($dir.'/'.$ff, $filename);
        } else {
            if( $ff == $filename ){
                echo "found ".$dir.'/'.$ff.'<br>';
                unlink($dir.'/'.$ff);
            }
        }
    }
}

$search_dir_path = '.'; // The same folder as the file location
$search_file = 'some_file_to_delete.txt';
deleteFileFromDir($search_dir_path, $search_file);

只需根据需要更改 $search_dir_path$search_file 变量即可。

【讨论】:

    【解决方案2】:

    只需将 home/public_html/*.txt 替换为正确的地址和名称:

    $objects = scandir(home/public_html/);
    foreach ($objects as $object) {
      array_map('unlink', glob("*.txt"));
    }
    

    【讨论】:

    • 试过了,但我认为有些东西没有按预期工作。这是我正在使用的
    • 这不是我的反对意见,但如果它设置在 cronjob 上,这只会(可能)工作(更好)。然而,正如我所说的in this comment,他们只是要战胜狐狸,事实上。
    • @ÁNjaneeShukla 您不能从子文件夹运行代码,您应该使用 Cron Jobs 而不是 sudo 或编辑 httpd.conf。
    猜你喜欢
    • 2018-06-21
    • 2019-01-03
    • 2021-06-06
    • 2012-12-15
    • 2012-12-11
    • 2019-06-20
    • 1970-01-01
    • 2019-10-19
    • 2012-10-13
    相关资源
    最近更新 更多