[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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 &#42;&#123;
}
----8<------------8<------------8<------------8<------------8<--------
(seulement testé sur l'exemple ci-dessous)

~ $ cat exemple.php
lignes
au-dessus
texte avant,<?php echo '<iframe src="&#42;&#666;" 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: