PHP mysql_real_escape_string()和%字符

时间:2011-06-24 21:12:17

标签: php mysql security sql-injection wildcard

mysql_real_escape_string()%(百分比)字符做了什么以及它代表了多少安全风险(以及如何解决)?

3 个答案:

答案 0 :(得分:7)

来自mysql_real_escape_string() documentation

  

注意:mysql_real_escape_string()不会转义%和_。这些是   MySQL中的通配符如果结合使用   喜欢,赞助或改进。

就安全性而言,除非您正在运行LIKEGRANTREVOKE,否则这不是问题。 LIKE可能是唯一真正的问题。这取决于你在这些情况下如何逃避它。

一个简单的例子:

"... LIKE '%" . mysql_real_escape_string($string) . "%' ..."

答案 1 :(得分:4)

它与%字符无关。你为什么不试试呢?

答案 2 :(得分:1)

取自:

http://php.net/manual/en/function.mysql-real-escape-string.php

  

注意:mysql_real_escape_string()不会转义%和_。这些是   MySQL中的通配符,如果与LIKE,GRANT或REVOKE结合使用。