Skip to content
Extraits de code Groupes Projets
Valider 28e4c5ee rédigé par Fil's avatar Fil
Parcourir les fichiers

regler le cas des appels < script language=php >

parent d3646bcd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -157,6 +157,12 @@ function traiter_echap_frame_dist($regs) { ...@@ -157,6 +157,12 @@ function traiter_echap_frame_dist($regs) {
// http://doc.spip.org/@traiter_echap_script_dist // http://doc.spip.org/@traiter_echap_script_dist
function traiter_echap_script_dist($regs) { function traiter_echap_script_dist($regs) {
// rendre joli (et inactif) si c'est un script language=php
if (preg_match(',<script\b[^>]+php,ims',
$regs[0]))
return highlight_string($regs[0],true);
// Cas normal : le script passe tel quel
return $regs[0]; return $regs[0];
} }
...@@ -402,12 +408,15 @@ function interdire_scripts($t) { ...@@ -402,12 +408,15 @@ function interdire_scripts($t) {
// rien ? // rien ?
if (!$t OR !strstr($t, '<')) return $t; if (!$t OR !strstr($t, '<')) return $t;
// echapper les tags asp // echapper les tags asp/php
$t = str_replace('<'.'%', '&lt;%', $t); $t = str_replace('<'.'%', '&lt;%', $t);
// echapper le php // echapper le php
$t = str_replace('<'.'?', '&lt;?', $t); $t = str_replace('<'.'?', '&lt;?', $t);
// echapper le < script language=php >
$t = preg_replace(',<(script\b[^>]+\bphp\b),UimsS', '&lt;\1', $t);
// Pour le js, trois modes : parano (-1), prive (0), ok (1) // Pour le js, trois modes : parano (-1), prive (0), ok (1)
switch($GLOBALS['filtrer_javascript']) { switch($GLOBALS['filtrer_javascript']) {
case 0: case 0:
...@@ -434,7 +443,7 @@ function safehtml($t) { ...@@ -434,7 +443,7 @@ function safehtml($t) {
if (strpos($t,'<')===false) if (strpos($t,'<')===false)
return str_replace("\x00", '', $t); return str_replace("\x00", '', $t);
$t = interdire_scripts($t); $t = interdire_scripts($t); // jolifier le php
$t = echappe_js($t); $t = echappe_js($t);
if (!isset($safehtml)) if (!isset($safehtml))
...@@ -442,7 +451,7 @@ function safehtml($t) { ...@@ -442,7 +451,7 @@ function safehtml($t) {
if ($safehtml) if ($safehtml)
$t = $safehtml($t); $t = $safehtml($t);
return interdire_scripts($t); # gere le < ?php > en plus return interdire_scripts($t); // interdire le php (2 precautions)
} }
// Correction typographique francaise // Correction typographique francaise
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter