【问题标题】:using PHP to search files to find certain files and delete them fast使用PHP搜索文件以找到某些文件并快速删除它们
【发布时间】:2019-04-30 21:31:10
【问题描述】:

我需要从我的网站上复制内容以创建另一个系统,因为主题不断被黑客入侵。黑客不断放置一个恶意软件 .ico 文件...

所以我需要创建一个 php 文件,该文件将始终搜索未命名的文件 favicon.ico 并在找到它们时将其删除。

有没有一种快速的方法可以在 public_html 中的每个目录中搜索隐藏并命名为:.*.ico 的文件? 他们似乎从 . 然后不同的名字 然后.ico

总是这样:.*.ico

但未命名:favicon.ico 因此,只需一段代码即可在 public_html 中使用 PHP 删除所有名为 .ico 但未命名为 favicon.ico 的文件

我认为取消链接会起作用,但如何让它不删除 favicon.ico?

有人知道吗? 我几乎完成了复制所有内容以创建一个不同的网站并删除整个网站并将域移动到新服务器,所以它不能再被黑客入侵......但它一直被黑客入侵所以我必须创建一个 cron 作业继续寻找要删除的 .ico 文件。

如果您能指出正确的方向,请提前致谢。 :)

我一直在网上寻找方法,但没有找到。需要快速获取它,因为它每隔几个小时就会被黑客入侵。

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

没有测试它,因为我认为它会删除我不想删除的ico文件。

【问题讨论】:

  • 或者如何扫描所有文件夹并获取所有文件名,如果它们是 .ico 而不是 favicon.ico,则删除该文件......但只有那个文件......是否有循环这样做直到我们开始的主目录中的所有文件结束?
  • 在我看来,您是在解决症状而不是疾病。也许你应该加强你的安装。
  • 我的主题似乎是它不断被黑的原因,我已经检查了其他所有内容......一定是主题。我在 3 个不同的网站上有这个主题,所有 3 个都被黑了,其他的都没有……所以必须是。所以我只需要不使用那个主题,但我必须先重新创建网站内容,因为如果我更改主题会破坏外观,所以需要全部复制。
  • 不管他们为什么要入侵您的网站,您都应该修复它,以免一开始就被入侵。
  • 这种hack的目的似乎是为黑客创建一个WordPress用户。你在用WP吗?在这种情况下,请检查用户列表。我不认为现在删除图标文件会有帮助,这可能为时已晚。如果您使用 WP、大量插件和第三方主题,那么偶尔的 hack 似乎是不可避免的。这是那里最大的目标。不是你的错,只要努力保持一切都是最新的。

标签: php file-search


【解决方案1】:

我认为您需要一个递归脚本来执行工作...

你可以试试这个:

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 ...

如果需要,请检查输出...并将取消链接添加到列出的路径和文件...

【讨论】:

  • 那么,文件名是什么字段,所以我可以添加代码来查看它是否是 .ico 文件并且不包含 favicon.ico 如果不是,则取消链接...?
  • 我已经删除了所有带有 $search_text = '.ico' 的 .ico; AND 数组过滤器
【解决方案2】:

unlink() 这样的函数需要一个准确的路径名,它们不会自动扩展通配符。

使用glob()获取匹配模式的文件列表,然后您可以使用array_map()为每个文件调用函数。

array_map('unlink', glob("/home/path/public_html/*.ico"));

【讨论】:

  • 也许对这段代码小心的额外警告会是一件好事。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-25
  • 2010-10-19
  • 1970-01-01
  • 1970-01-01
  • 2014-10-14
  • 2012-03-17
  • 1970-01-01
相关资源
最近更新 更多