Re: Un p'tit coup de main pour un grand nettoyage !
Christophe Gallaire a écrit, lundi 14 avril 2008, à 11:56 :
> Bonjour Jacques,
bonjour,
> Jacques L'helgoualc'h a dit dans un souffle :
M'enfin, plusieurs...
[...]
>> Tout d'abord, il faudrait que Christophe vérifie si cette P*@!µ$ de
>> ligne de code tient bien sur une seule ligne, ou plusieurs --- c'est
>> important pour Sed.
>
> Alors, la ligne est invariablement la même.
Bon.
> Elle est en document plein texte ici
> : http://www.clg-montaigne-goussainville.ac-versailles.fr/code
Je n'ai pas la permission d'entrer sur le site ?
> Le problème est que dans certains fichiers elle est venue s'ajouter dans la
> suite de la dernière et dans d'autres elle est la dernière ligne. En clair,
> parfois elle n'est pas seule sur la ligne. Une constante : elle est toujours sur
> la dernière ligne !
Sans rien d'utile après, c'est plus sûr... S'il n'y a pas de pourcentage
dans ce code,
sed -i.infect -f purge_ligne.sed exemple.php
devrait faire le nettoyage,
purge_ligne.sed :
----8<------------8<------------8<------------8<------------8<--------
${ # sur la dernière ligne,
\%LA_LIGNE%{ # quand elle est infectée,
s///g # on supprime le(s) code(s)
}
}
----8<------------8<------------8<------------8<------------8<--------
Plus générique, on peut supposer que ce style de codage n'est employé
nulle part,
purge_code.sed :
----8<------------8<------------8<------------8<------------8<--------
\%<?php echo '<iframe src="\(&#[0-9]\+;\)\+" width=1 height=1></iframe>';?>%{
s///g # on supprime tous les codes à la *{
}
----8<------------8<------------8<------------8<------------8<--------
(seulement testé sur l'exemple ci-dessous)
~ $ cat exemple.php
lignes
au-dessus
texte avant,<?php echo '<iframe src="*ʚ" width=1 height=1></iframe>';?> rien ensuite
Si ça marche, un coup de balai :
find /nids_de_php/ -type f -iname \*.php -exec sed -i.infect -f script.sed {} +
mais il peut être plus élégant d'établir d'abord la liste des fichiers infectés.
[...]
>> - l'option -f de Sed, ou mieux « --script-file=FICHIER-SCRIPT », permet
>> d'éviter ces problèmes.
Aaaargh --- c'est « --file » :/
--
Jacques L'helgoualc'h
Reply to: