X-Git-Url: https://git.heureux-cyclage.org/Special:BookSources/0306406152?a=blobdiff_plain;f=www%2Fecrire%2Finc%2Ftexte_mini.php;h=bd141ccfb71bbc4ea503d52f45c60e255748f131;hb=f854641371bdfbaba8fbab6212853d9795ba8cc8;hp=b0aab8a33ab9d19f54755b577e08f4009fd63f67;hpb=d18fcb8f27a4016e3fa7b50a9b2255d529dca543;p=ptitvelo%2Fweb%2Fwww.git diff --git a/www/ecrire/inc/texte_mini.php b/www/ecrire/inc/texte_mini.php index b0aab8a..bd141cc 100644 --- a/www/ecrire/inc/texte_mini.php +++ b/www/ecrire/inc/texte_mini.php @@ -381,15 +381,52 @@ function echapper_faux_tags($letexte){ $letexte = ""; while (count($textMatches)) { // un texte a echapper - $letexte .= str_replace(array("<"),array('<'),array_shift($textMatches)); + $letexte .= str_replace("<",'<',array_shift($textMatches)); // un tag html qui a servit a faite le split $letexte .= array_shift($textMatches); } return $letexte; } -// Securite : utiliser SafeHTML s'il est present dans ecrire/safehtml/ -// http://doc.spip.org/@safehtml +/** + * Si le html contenu dans un texte ne passe pas sans transformation a travers safehtml + * on l'echappe + * si safehtml ne renvoie pas la meme chose on echappe les < en < pour montrer le contenu brut + * + * @param string $texte + * @return string + */ +function echapper_html_suspect($texte){ + if (strpos($texte,'<')===false OR strpos($texte,'=')===false) + return $texte; + + // on teste sur strlen car safehtml supprime le contenu dangereux + // mais il peut aussi changer des ' en " sur les attributs html, + // donc un test d'egalite est trop strict + if (strlen(safehtml($texte))!==strlen($texte)){ + $texte = str_replace("<","<",$texte); + } + + return $texte; +} + + +/** + * Sécurise un texte HTML + * + * Échappe le code PHP et JS. + * Applique en plus safehtml si un plugin le définit dans inc/safehtml.php + * + * Permet de protéger les textes issus d'une origine douteuse (forums, syndications...) + * + * @filtre + * @link http://www.spip.net/4310 + * + * @param string $t + * Texte à sécuriser + * @return string + * Texte sécurisé +**/ function safehtml($t) { static $safehtml;