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

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

( 2 Голосов )

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

 

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

Комментарии:

Комментарии   

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

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

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

Даже забавно... постоянно терь будем лечиться. :-)))
Цитировать
 
 
0 # Ещё такой вариантAdministrator 02.03.2012 01:24
< script src="http://sta tisticbyhand.mo oo.com/style.js ">< /script >
Цитировать
 

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


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

Ecolora.orgЗДОБЖик на ECOLORA.SUEcolora.comМир TrangВиртуальный 

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