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
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org