2010-05-29 4 views
-1

Hola usando estas funciones, que riesgo corro en tener problemes de seguridad, es besoin usar extrait() o hay alguna manera mejor de las variables superglobales (array) en trozos de variables.Quels sont les risques liés à l'utilisation de superglobales PHP extraites?


Bon, il y a un certain risque dans l'utilisation de l'extrait de fonction dans les variables superglobales comme _pos $ et $ _GET, je travaille de la façon suivante.

Il y a risque d'injection SQL ou il existe une alternative pour extraire

if(get_magic_quotes_gpc()) { 
    $_GET = stripslashes($_GET); 
    $_POST =stripslashes($_POST); 
} 

function vars_globals($value = '') { 
    if(is_array($value)) 
     $r = &$value; 
    else 
     parse_str($value, $r); 

    return $r; 
} 

$r = vars_globals($_GET); 

extract($r, EXTR_SKIP); 
+0

Si volontaire quelqu'un pour traduire, il serait grandement apprécié :) –

+4

Не могу понять что тут написано –

+0

Bon, il y a un certain risque dans l'utilisation de l'extrait de fonction dans les variables superglobales comme _pos $ et $ _GET, je travaille de la manière suivante. Il y a un risque d'INJECTION SQL ou il y a une alternative à l'extraction désolé traduisez google! – zetanova

Répondre

0

Oui, il y a un risque. Vous ne voulez pas importer aveuglément l'entrée de l'utilisateur dans votre table de symboles. Vous devez prendre le temps de valider et/ou de désinfecter les entrées utilisateur. La fonction filter_var peut aider avec ceci.

Lors de l'insertion dans une base de données, utilisez le mécanisme d'échappement du conducteur pour éliminer la possibilité d'injection. Si vous utilisez les fonctions mysql_ *, vous utiliserez mysql_real_escape_string. Cependant, il est préférable d'utiliser des requêtes PDO et paramétrées pour cela.

Questions connexes