Estoy usando una clase principal de Site Engine que está construyendo la mayoría de mis páginas. Estoy usando esta función de idioma para cambiar el sitio web de idioma para todas mis páginas al comienzo de la clase de Site Engine:
'$defaultLang = 'en';
//Checking, if the $_GET["language"] has any value
//if the $_GET["language"] is not empty
if (!empty($_GET["language"])) { //<!-- see this line. checks
//Based on the lowecase $_GET['language'] value, we will decide,
//what lanuage do we use
switch (strtolower($_GET["language"])) {
case "en":
//If the string is en or EN
$_SESSION['lang'] = 'en';
break;
case "tr":
//If the string is tr or TR
$_SESSION['lang'] = 'tr';
break;
default:
//IN ALL OTHER CASES your default langauge code will set
//Invalid languages
$_SESSION['lang'] = $defaultLang;
break;
}
}
//If there was no language initialized, (empty $_SESSION['lang']) then
if (empty($_SESSION["lang"])) {
//Set default lang if there was no language
$_SESSION["lang"] = $defaultLang;
}
Template::SetLanguage($_SESSION['lang']);'
Estoy haciendo dos preguntas:
-
¿Se puede explotar de alguna manera el
domain.com/?language=LANG_HERE
? -
Ya que almaceno variables de sesión adicionales al iniciar sesión correctamente en el sitio web:
$_SESSION['Account'], $_SESSION['Password'], $_SESSION['Email']
¿Es posible que la variable de sesión lang sea explotada o manipulada? NO es la entrada del usuario, ya que la estoy configurando de acuerdo con la respuesta de./?language=LANG_HERE
, pero en general, ¿esta secuencia de comandos anterior puede ser explotada de alguna manera?
Lo siento si estas preguntas parecen estúpidas, pero aún estoy aprendiendo y necesito saberlo con seguridad. ¡Gracias!