La seguente funzione può essere sfruttata / utilizzata in qualche modo per comportamenti dannosi?

1

Sto usando una classe principale di Site Engine che sta costruendo la maggior parte delle mie pagine. Sto utilizzando questa funzione di lingua per cambiare il sito web della lingua per tutte le mie pagine all'inizio della classe del motore del sito:

'$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']);'

Sto facendo due domande:

  1. In qualche modo può essere sfruttato domain.com/?language=LANG_HERE ?

  2. Poiché memorizzo variabili di sessione aggiuntive dopo aver effettuato correttamente l'accesso al sito web: $_SESSION['Account'], $_SESSION['Password'], $_SESSION['Email'] È possibile che la variabile della sessione lang sia sfruttata o manipolata? NON è l'input dell'utente poiché lo imposto in base alla risposta di ./?language=LANG_HERE , ma in generale questo script sopra può essere sfruttato in qualche modo?

Scusa se queste domande sembrano stupide ma sto ancora imparando e ho bisogno di saperlo con certezza. Grazie!

    
posta Monk25 20.10.2014 - 15:55
fonte

1 risposta

1

Il tuo codice sembra buono e sembra che non ci sia nulla di cui ti devi preoccupare.

Una nota a margine o due:

Vorrei prendere in considerazione l'aggiunta di trim () alla variabile per pulire qualsiasi spazio bianco.

Sono curioso di sapere perché utilizzi if(!empty){}if(empty){} invece di if(!empty){}else{}

    
risposta data 20.10.2014 - 16:59
fonte

Leggi altre domande sui tag