Поиск по файлам на хостинге и замена текста

Тема в разделе "Коммерческие", создана пользователем Levitt, 4 сен 2008.

Информация :
Публиковать (для всех) нуленые версии, особенно от modulesgarden КАТЕГОРИЧЕСКИ не стоит. Тема мониторится оным разработчиком, а к нам приходят абузы которые нельзя игнорировать.
Статус темы:
Закрыта.
Модераторы: Amazko, Aste
  1. Levitt

    Levitt

    Регистр.:
    20 май 2008
    Сообщения:
    358
    Симпатии:
    36
    Один хороший хостинг, на котором лежат мои сайты хитррожопо обрезал джавускритпы, а именно в коде замменил слово SCRIPT на DELETED. Как я понимаю запустили скрипт. Выход вижу только один, применить антискрипт который бы заменил все назад =)

    И так есть сайт,пасс,лог записаный в формате
    |||ywjwdzoto.сайт.com|ywjwdzoto|moSmDnuEA||Перейти по ссылке . Сайт лежит в корневой дириктории.. все то нужно это перерыть все файлы в корневой директории с расширением html и заменить в них слово delited на script.
    Награда за труды будет обязательно
     
  2. zerg

    zerg

    Регистр.:
    5 май 2006
    Сообщения:
    262
    Симпатии:
    345
    Нужен доступ по ssh или залить вэб шел. unix команда по реплейспенту одного значения на другое
    Точно не помню если не совсем так отработает смотри man tr там кажется ключик -ds может потребоваться.

    может понабобятся команды по навигации.
    cd /.. переход в корень диска.
    cd /usr/ переход в каталог usr
    pwd - показывает папку в которой сейчас находишься.
    ls - список папок
    ls -all то же самое но с правами доступа
    exit - выход с шела =)
    если хостер, вредный и вернет обратно,можно написать скрипт который будет через заданый промежуток времени выполнять команду поиска/замены нужных значений )
     
  3. alexzh

    alexzh

    Регистр.:
    13 сен 2006
    Сообщения:
    222
    Симпатии:
    88
    скрипт на пхп подойдет? http://scripts.xrenoder.com/ Search & Replace (source code)
     
  4. Levitt

    Levitt

    Регистр.:
    20 май 2008
    Сообщения:
    358
    Симпатии:
    36
    unix команды.. :bc:
    на локалке со всеми правами досутпа меняет на ура,
    вот только когда залью на сервер этих прав у файла нет. Вобщем нужно прикрутить авторизацию.
    Пробывал с РедБаттона втыкнуть фтп авторизацию, но видно фтп тут и мое знание пхп никуда не годно

    PHP:
    //====авторизация по фтп с РБ====
    $ftp=vdrcikwbw.247ihost.com;
    $login=vdrcikwbw;
    $password=Ftujshxkd;
    function 
    FTPConnect(){
            global 
    $ftp$passmode$login$password$folder$passmode$myftp;
            
    $myftp=@ftp_connect($ftp21);
            if (@
    $myftp==FALSE) {print "<div class='eggog'>FTP-сервер $ftp недоступен или не существует. Дальнейшее выполнение скрипта не целесообразно.</div>"flush();  die; }; 
            if(@!
    ftp_login($myftp$login$password)) {print "<div class='eggog'>Неправильные логин или пароль. Дальнейшее выполнение скрипта не целесообразно.</div>"flush();  die;}

    //========СОбственно сам скрипт Замены===========    
     
    {
    $work_dir="./";         
    // рабочая директория - обязательно должна заканчиваться
    // символом "/"

    $excl_dir=array();
    $excl_dir[0]="./images/";         

    // директории, где поиск/замена не производятся - обязательно должны заканчиваться
    // символом "/"


    $file_mask_1=".html";    
    $file_mask_2=".js";
    // маски обрабатываемых файлов (будут обработаны все файлы,
    // содержащие данную строку в имени)

    $search_str="deleted";    #что ищем
    $replace_str="script";    #чем заменяем

    //******************************************************

    $level=0;

    function 
    sr($dir)
    {
    global 
    $level,$file_mask_1,$file_mask_2,$search_str,$replace_str,$excl_dir;
    echo 
    "<b>";
    for (
    $i=0;$i<$level;$i++) echo "* * ";
    echo 
    $dir."</b>";

    if (@
    in_array($dir,$excl_dir))
    {
    echo 
    " - needn't search & replace<br>";
    return;
    }

    echo 
    "<br>";

    $p dir($dir);
    while(
    $ent=$p->read()) 
    {
    if (
    $ent!="." && $ent!=".." && !is_dir($dir $ent) && (eregi(sql_regcase($file_mask_1),$ent) || eregi(sql_regcase($file_mask_2),$ent)))
    {
    $tmp=@file($dir.$ent);
    $str=@implode("",$tmp);

    if (
    strpos("@!#%xrenoder^&*()".$str,$search_str))
    {
    for (
    $i=0;$i<($level)+1;$i++) echo "* * ";
    echo 
    $dir.$ent." found...";

    $str=str_replace($search_str,$replace_str,$str);

    if (
    $fp=@fopen($dir.$ent"w"))
    {
    flock($fp,LOCK_EX);     
    fwrite($fp,$str);
    fclose($fp);
    echo 
    " and replace<br>";
    }
    else echo 
    " and <b>can't replace</b><br>";
    }

    }
    elseif(
    $ent!="." and $ent!=".." and is_dir($dir $ent))
    {
    $level++;
    sr($dir.$ent."/");
    $level--;
    }
    }
    $p->close();

    return;
    }

    sr($work_dir);

    echo 
    "SEARCH & REPLACE Complete";
        }
    //========Конец скрипт Замены===========
            
    flush(); 
            return 
    true;
            
    }
    Можно ли сделать чтоб скрипт запускался с сервака?
     
  5. alexzh

    alexzh

    Регистр.:
    13 сен 2006
    Сообщения:
    222
    Симпатии:
    88
    имхо так не получится т.к. фтп не может исполнять крипты
    просто надо разрешить редактирование файлов, или прото таки сменить на локале и выгрузить снова....
     
Статус темы:
Закрыта.