mysql_real_escape_stringЭкранирует специальные символы в строках для использования в выражениях SQL
&reftitle.description;
stringmysql_real_escape_stringstringunescaped_stringresourcelink_identifier
Экранирует специальные символы в unescaped_string,
принимая во внимание кодировку соединения, таким образом, что результат
можно безопасно использовать в SQL-запросе в функции mysql_query.
Если вставляются бинарные данные, то к ним так же необходимо применять эту функцию.
mysql_real_escape_string вызывает библиотечную функцмю MySQL
mysql_real_escape_string, которая добавляет обратную косую черту к следующим символам:
\x00, \n,
\r, \, ',
" и \x1a.
Эта функция должна всегда (за несколькими исключениями) использоваться для того,
чтобы обезопасить данные, вставляемые в запрос перед отправкой его в MySQL.
&reftitle.parameters;
unescaped_string
Экранируемая строка.
&mysql.linkid.description;
&reftitle.returnvalues;
Возвращает строку, в которой экранированы все необходимые символы,
или &false; в случае ошибки.
&reftitle.examples;
Простой пример использования mysql_real_escape_string
]]>
Пример взлома с использованием SQL-инъекции
]]>
Запрос, который будет отправлен в MySQL:
Это позволит кому угодно войти в систему без пароля.
&reftitle.notes;
Функцию mysql_real_escape_string можно использовать
только после того, как установлено соединение с MySQL. В противном
случае возникнет ошибка уровня E_WARNING, а функция
возвратит &false;. Если link_identifier не указан,
используется последнее открытое соединение.
Если magic_quotes_gpc включены,
то сначала данные следует обработать функцией stripslashes.
Если данную функцию применить к уже проэкранированным данным,
то данные будут проэкранированы дважды.
Если не пользоваться этой функцией, то запрос становится уязвимым для
взлома с помощью SQL-инъекций.
mysql_real_escape_string не экранирует символы
% и _. Эти знаки являются масками
групп символов в операторах MySQL LIKE,
GRANT и REVOKE.
&reftitle.seealso;
mysql_client_encodingaddslashesstripslashesДиректива magic_quotes_gpcДиректива magic_quotes_runtime