2010-05-29 1 views
-1

Hola usando estas funciones, que riesgo corro en tener problemas de seguridad, es necesesario usar extract() o hay alguna manera mejor de convertir las variables superglobales (array) en trozos de variables.Какие риски существуют при использовании извлеченных суперглобальных PHP-файлов?


Хорошо, есть некоторый риск при использовании функции экстракта в суперглобальных переменных, как $ _POS и $ _GET, я работаю по следующим образом.

Существует риск SQL Injection или есть альтернатива для извлечения

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

Если кто-то добровольно переводится, было бы очень полезно :) –

+4

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

+0

Хорошо, существует некоторый риск использования выписки функции в суперглобальных переменных как $ _POS и $ _GET, я работаю над следующий способ. Существует риск SQL INJECTION или есть альтернатива извлечения Извините, перевести Google! – zetanova

ответ

0

Да, есть риск. Вы не хотите слепо импортировать пользовательский ввод в свою таблицу символов. Вы должны потратить время на проверку и/или дезинфекцию ввода пользователя. Функция filter_var может помочь в этом.

При вставке в базу данных используйте механизм выключения водителя, чтобы исключить возможность впрыска. Если вы используете функции mysql_ *, вы должны использовать mysql_real_escape_string. Однако для этого гораздо лучше использовать PDO и параметризованные запросы.