From d681632092177de952d6e49a866ce11c876410c6 Mon Sep 17 00:00:00 2001 From: pitch314 <8677243+pitch314@users.noreply.github.com> Date: Thu, 26 Mar 2020 15:22:56 +0100 Subject: [PATCH] =?UTF-8?q?S=C3=A9curisation=20data=20out=20HTML,=20pr?= =?UTF-8?q?=C3=A9paration=20pour=20les=20textes=20de=20langues.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lang/lang_main.php | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/lang/lang_main.php b/lang/lang_main.php index 4c6a5c27..a202a204 100644 --- a/lang/lang_main.php +++ b/lang/lang_main.php @@ -26,6 +26,36 @@ function load_lang_file($ui_lang, $filename, $parent_dir = ".") { require_once ($default_file_path); } +/** + * Encode du texte pour un affichage sans problème en HTML avec prise en compte \n. + * + * @param string $texte Le texte à sécuriser + * @param string $format Le type de format final à encoder [défaut=HTML] + * @return string le texte encodé. + */ +function print_lang($texte, $format = 'HTML') { + //Pour HTML + $text = htmlspecialchars($texte, ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8'); + // $text = nl2br($text, false); + $text = str_replace( array("\r\n", "\r", "\n"), '
', $text ); //Afin de retirer les retours à ligne, non supp par nl2br + + return $text; +} + +/** + * @brief Sécurise en formatant correctement les textes de langues. + * + * @param [in] $s_lang Tableau des textes de langue + * @return tableau encodé + * + */ +function secure_lang($s_lang) { + foreach($s_lang as $key => $value){ + $s_lang[$key] = print_lang($value); + } + return $s_lang; +} + global $lang; $lang = array(); @@ -55,4 +85,5 @@ function load_lang_file($ui_lang, $filename, $parent_dir = ".") { load_lang_file($ui_lang, "lang_help.php"); } - +//TODO: Nettoyer les fichiers de lang avant ! +// $lang = secure_lang($lang);