MySQL подготовил заявления, мне все еще нужно использовать mysql_escape_string - PullRequest
2 голосов
/ 02 марта 2012

Мне все еще нужно использовать mysql_escape_string, чтобы избежать атак SQL-инъекций, если я использую подготовленные операторы в MySQL 5.3?

Ответы [ 2 ]

3 голосов
/ 02 марта 2012

ЗОП должен позаботиться о побеге / дезинфекции для вас. Предполагая, что вы имеете в виду:

$db->prepare('SELECT * FROM table WHERE foo = ?');
$db->execute(Array("bar's baz"));
0 голосов
/ 02 марта 2012

Несколько забавная вещь - вы не должны использовать mysql_escape_string, чтобы избежать атак SQL-инъекций, даже если вы не используете подготовленные операторы в MySQL 5.3. Обратите внимание, что это не функция «mysql_prevent_sql_injection ()», это escape-строка mysql one. Таким образом, он используется для экранирования строк. Вы должны избегать строк, несмотря на возможность инъекции. Тем не менее, это не поможет с любой частью запроса, кроме строки в кавычках.

...