« L’analyse du code source a montré
la présence de faillesde type injection de code via une faille
de type XSS (Cross Site Scripting) au niveau de l’outil de recherche utilisé
sur le site web qui permettait d’injecter des liens vers des adresses
contenant des scripts malicieux vers le domaine "imagesoap.com".
Le problème proviendrait de la fonctionnalité
"Google Like" qui ne purgerait pas correctement ses entrées.
Merci de ne pas l’utiliser.
Présentation
Cette petite fonctionnalité vous permettra d’afficher les résultats de vos recherches à la manière de Google.
Elle fait appel en partie à PHP pour concaténer tout les éléments de recherche de SPIP.
Il faudra egalement vous assurer que votre PHP est compilé avec la librairie PCRE.
Il l’est par défaut depuis la version 4.2.0.
A l’exception de cela, l’inclusion du script se fait de manière traditionnelle, c’est-à-dire dans « mes_fonctions.php3 ».
Le systême a l’avantage d’être insensible à la casse au niveau de la requête mais respecte néanmoins celle-ci lors de l’affichage contextuel.
Mise en place
Dans mes_fonctions.php3 accessible à la racine de votre site (ou à créer si ce n’est pas le cas), ajoutez la fonction suivante :
function google_like($string){
$query = rtrim(str_replace("+", " ", $_GET['recherche']));
$qt = explode(" ", $query);
$num = count ($qt);
$cc = ceil(200 / $num);
for ($i = 0; $i < $num; $i++) {
$tab[$i] = preg_split("/($qt[$i])/i",$string,2, PREG_SPLIT_DELIM_CAPTURE);
if(count($tab[$i])>1){
$avant[$i] = substr($tab[$i][0],-$cc,$cc);
$apres[$i] = substr($tab[$i][2],0,$cc);
$string_re .= "<i>[...]</i> $avant[$i]<b>".$tab[$i][1]."</b>$apres[$i] <i>[...]</i> ";
}
}
return $string_re;
}
Sur votre squelette recherche.html, dans votre boucle (ARTICLES), ajoutez le code suivant :
<?php
$string = '[(#TITRE|supprimer_numero|texte_script) ]';
$string .= '[(#CHAPO|textebrut|texte_script) ]';
$string .= '[(#DESCRIPTIF|textebrut|texte_script) ]';
$string .= '[(#TEXTE|textebrut|texte_script)]';
echo google_like($string);
?>
Exemples en ligne
Ce filtre a été développé par Linagora à la demande de la mairie d’Aubervilliers dont voici un exemple d’utilisation en ligne : http://www.aubervilliers.fr/recherc...
Nous l’avons repris lors de la conception du site de toolinux.com : http://www.toolinux.com/recherche.p...
D’autres contributions à SPIP sont disponibles sur notre espace communautaire : http://www.linagora.org/rubrique32.html
Discussions par date d’activité
16 discussions
Bonjour,
j’ai été obligé de mettre le script php dans le fichier « inc-public.php » (c’est la version ’.php’ et non ’.php3’ que j’utilise). Je ne comprends pas trop mais bon, cela fonctionne.
Répondre à ce message
Désolé mais ca ne marche pas chez moi
bizarre, ça ne marche pas chez moi non plus !!
manquerait-il des bouts de code ???
j’ai la v1.7.2
cordialement, jm
J’ai eu un problème un peu basique, aussi, avec ce script plutôt sympathique. Je n’avais pas placé les balises php au début et à la fin du script dans mes_fonctions.php3. C’est peutêtre votre problème aussi.
Répondre à ce message
Si vous bidouillez le code à coller dans votre page « recherche », faites attention, derrière le premier « string », il ne faut pas de point. Si par exemple vous ne voulez mettre que le « texte » de votre article, sans chapo etc en « surligné like google », il vous faut mettre dans le html de votre page recherche.html :
sans le point après « string » et avant « = »
Ce sript marche parfaitement, y compris sur la 1.8 alpha 1 CVS
Répondre à ce message
C’est encore plus bizzare car chez moi tout fonctionne :p
Répondre à ce message
Ca marche pas en local chez moi :/ pourtant ai la derniere version de easyphp ;)
Répondre à ce message
bizarre, ça ne marche pas chez moi non plus !!
manquerait-il des bouts de code ???
j’ai la v1.7.2
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |