fix(security): sanear idioma de URL para cerrar XSS reflejado

El parametro ?idioma= llegaba crudo (la query string se reenvia entera a
slug.php via .htaccess) y se reflejaba sin escapar en RUTA_RAIZ/ROOT,
lang="..." y variables JS de las plantillas -> XSS reflejado explotable
en cualquier web (p.ej. ?idioma=';alert(document.cookie);// en contexto JS).

- variables.php: allowlist de idiomas antes de definir constantes/render;
  cualquier valor desconocido se descarta.
- footer.tpl/header.tpl: json_encode en los sinks JS (defensa en profundidad).
This commit is contained in:
Jordan Diaz
2026-07-29 11:48:05 +00:00
parent 46ecbb3f09
commit 5861bac1da
3 changed files with 10 additions and 2 deletions

View File

@@ -149,7 +149,7 @@
?>
<script>
var hooksToken = '<?=sha1(session_id().$_SERVER["HTTP_HOST"]);?>';
var language = '<?=@$_REQUEST['idioma']?:'www'?>';
var language = <?=json_encode(@$_REQUEST['idioma']?:'www')?>;
{CMSAPI_JS}
</script>
<?