Je n'utilise pas franchement spip mais j'en ai une version pour tester
upgradée par un autre utilsateur en 1.4.
Or lors d'un debuggage de mon générateur de RSS (externe à spip), une faute
de code m'a fait laisser un " (guillemet) dans chacun des champs
/rss/channel/item/link
de telle sorte qu'il contenait
<link>http://une_url/blabla.html"</link>
or cela a fait planter la syndication de spip qui ne pouvait alors se faire
et a sortie des tombereaux d'erreur MySQL.
Intrigué, je suis allé voir le code source de spip pour trouver dans le
fichier ecrire/inc_sites.php3 la partie suivante (dans la fonction
syndic_a_jour() ):
<...>
} for($i = 0 ; $i < count($item) ; $i++){
} ereg("<title>(.*)</title>",$item[$i],$match);
} $le_titre=addslashes($match[1]);
} $match="";
} ereg("<link>(.*)</link>",$item[$i],$match);
} $le_lien=$match[1];
} $match="";
} ereg("<date>(.*)</date>",$item[$i],$match);
} $la_date=$match[1];
} $match="";
} ereg("<author>(.*)</author>",$item[$i],$match);
} $les_auteurs=addslashes($match[1]);
} $match="";
} ereg("<description[^>]*>([^<]*)</description>",$item[$i],$match);
} $la_description=addslashes($match[1]);
}
} $match="";
} if (strlen($la_date) < 4) $la_date=date("Y-m-j H:i:00");
}
} $query_deja="SELECT * FROM spip_syndic_articles WHERE url=\"$le_lien\" AND id_syndic=$now_id_syndic";
} $result_deja=spip_query($query_deja);
} if (mysql_num_rows($result_deja)==0){
<...>
Il s'avère que les lignes
} ereg("<link>(.*)</link>",$item[$i],$match);
} $le_lien=$match[1];
puis
} $query_deja="SELECT * FROM spip_syndic_articles WHERE url=\"$le_lien\" AND id_syndic=$now_id_syndic";
ne font pas bon ménage car elle permettent en effet de passer des " à la
chaine SQL au mieux la rendant illégale au pire permettant la concaténation
d'instruction SQL et des dégats potentiels à la base.
Un ou deux addslashes() en plus ne ferait amha pas de mal... ![]()
Bon courage.
--
Fred - Depuis son doux foyer
From jccolom@club-internet.fr Mon Sep 16 18:43:59 2002
Return-Path: <jccolom@club-internet.fr>
Received: from relay-1v.club-internet.fr (relay-1v.club-internet.fr
[194.158.96.112])
by miel.brainstorm.fr (Postfix) with ESMTP id F3AF61BFC7
for <spip@rezo.net>; Mon, 16 Sep 2002 18:43:58 +0200 (CEST)
Received: from moi (lns06v-11-42.w.club-internet.fr [212.194.118.42])
by relay-1v.club-internet.fr (Postfix) with SMTP id 3A1BE16A8
for <spip@rezo.net>; Mon, 16 Sep 2002 18:43:58 +0200 (CEST)
Message-ID: <001e01c25da0$6ca10e40$2a76c2d4@moi>
From: "jean claude colombani" <jccolom@club-internet.fr>
To: <spip@rezo.net>
Date: Mon, 16 Sep 2002 18:45:11 +0200
Organization: moi
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-Mailman-Approved-At: Mon, 16 Sep 2002 22:24:39 +0200
Subject: =?iso-8859-1?q?=5BSpip=5D_?= =?iso-8859-1?q?help?=
X-BeenThere: spip@rezo.net
X-Mailman-Version: 2.1b2+
Precedence: list
List-Help: <mailto:spip-request@rezo.net?subject=help>
List-Archive: <Discuter chez rezo.net;
List-Unsubscribe: <http://listes.rezo.net/mailman/listinfo/spip>,
<mailto:spip-request@rezo.net?subject=unsubscribe>
List-Subscribe: <http://listes.rezo.net/mailman/listinfo/spip>,
<mailto:spip-request@rezo.net?subject=subscribe>
List-Post: <mailto:spip@rezo.net>
List-Id: SPIP : questions/reponses <spip.rezo.net>
X-List-Received-Date: Mon, 16 Sep 2002 16:43:59 -0000
Status: O
Content-Length: 184
Lines: 6
comment récupère mon mot de passe disparue sans laisse d'adresse depuis deux
jours ,
je signal que j'ai utilisé le lien mot de passe perdu sans succès
jcc
http://citoyenfr.lautre.net