PHP mysql_real_escape_string () и символ% - PullRequest
3 голосов
/ 25 июня 2011

Что mysql_real_escape_string() делает с символом % (процентов) и какую угрозу безопасности он представляет (и как ее исправить)?

Ответы [ 3 ]

7 голосов
/ 25 июня 2011

Из mysql_real_escape_string() документации :

Примечание: mysql_real_escape_string () не экранирует% и _. Это подстановочные знаки в MySQL в сочетании с LIKE, GRANT или REVOKE.

Что касается безопасности, если вы не используете LIKE, GRANT или REVOKE, это не проблема. LIKE, вероятно, единственная реальная проблема. Вам решать, как бы вы хотели избежать этого в этих ситуациях.

Быстрый пример:

"... LIKE '%" . mysql_real_escape_string($string) . "%' ..."
4 голосов
/ 25 июня 2011

Ничего не делает с символом%.Почему ты не попробовал это?

1 голос
/ 25 июня 2011

Взято из:

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

Примечание: mysql_real_escape_string () не экранирует% и _. Это подстановочные знаки в MySQL в сочетании с LIKE, GRANT или REVOKE.

...