Магические цитаты уязвимы для инъекций Sql? Должен ли я использовать полосы и затем дезинфицировать вход? - PullRequest
1 голос
/ 01 ноября 2011

Я запутался в этих магических цитатах.
Они включены на моем сервере, и мой вопрос должен я их отключить используя такие функции, как:

if(get_magic_quotes_gpc()){
 $username=stripslashes($username);
 $password=stripslashes($password);
}

чтобы очистить мой ввод или я должен оставить всю работу на волшебные кавычки.
Я практикую некоторые инъекции SQL (в учебных целях) и когда магические кавычки включены я ничего не могу сделать, но когда я использую код выше, я могу делать инъекции SQL.
Поэтому я должен придерживаться магических кавычек или использовать такие функции:

if(get_magic_quotes_gpc()){
 $username=stripslashes($username);
 $password=stripslashes($password);
 $cleanUsername=mysql_real_escape_string($username);
 $cleanPassword=mysql_real_escape_string($password);
}

У меня нет такого большого опыта по очистке входных данных, поэтому, пожалуйста, помогите: (

1 Ответ

1 голос
/ 01 ноября 2011

Магические кавычки устарели и будут удалены из следующей версии PHP (PHP 5.4), поэтому вам не следует полагаться на них.(См. http://www.php.net/manual/en/security.magicquotes.php). Лучший способ предотвратить внедрение SQL - это использовать PDO и подготовленные операторы. Для получения дополнительной информации см. http://fr2.php.net/manual/en/pdo.prepared-statements.php и, если вам нужно больше, найдите учебник в Google.

...