了解mysql_real_escape_string();

时间:2012-02-05 13:03:03

标签: mysql sql sql-injection

我不明白为什么mysql_real_escape_string需要逃避新的行和回车字符:

\n\r

使用\n\r的sql中可能存在哪些安全漏洞?

UPDATE tbl SET field = 'text text text \n text text text \r text text' WHERE id = 1;

1 个答案:

答案 0 :(得分:2)

MySQL不需要转义换行符。 manual page for the mysql_real_escape_string function of MySQL’s C API说:

  

编码的字符为“\”,“'”,“"”,NUL(ASCII 0),“\n”,“{ {1}}“和Control + Z.严格地说,MySQL只需要反斜杠,并且用于引用查询中字符串的引号字符将被转义。 \r引用其他字符,以便在日志文件中更容易阅读。

相关问题