« 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
Aucune discussion
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 : |