Wordpress: wpdb-> вставить VERSUS wpdb-> prepare (wpdb-> query ("INSERT - PullRequest
4 голосов
/ 05 марта 2010

Мне интересно, добавляет ли функция вставки wordpress косую черту к данным. Если этого не произойдет, может показаться, что лучше подготовить метод запроса, чтобы предотвратить внедрение SQL. Я попытался найти проблему в там кодекс / API; однако, это кажется недокументированным. Спасибо!

Ответы [ 2 ]

12 голосов
/ 16 апреля 2013

Этот вопрос немного стар, и кодекс, возможно, был обновлен с тех пор, как его спросили. И wpdb->insert(), и wpdb->prepare() обеспечивают одинаковый уровень безопасности в отношении экранирования входных данных SQL.

Кодекс заявляет , что и столбец, и значения данных, предоставляемые методу вставки, должны быть необработанными, а не экранированными SQL.

Я также быстро взглянул на источник, чтобы подтвердить. Реализация для метода вставки использует wpdb->prepare().

4 голосов
/ 05 марта 2010

Wordpress использует ezSQL для запроса базы данных. Технически, это не уровень абстракции, но он забирает часть стандартного кода. В ezSQL есть функция escape, поэтому я предполагаю, что Wordpress всегда вызывает функцию escape перед выполнением запроса. Но чтобы быть уверенным, вы должны взглянуть на исходный код.

Вот как вы избегаете строки в Wordpress:
$safe_string = $wpdb->escape($unsafe_string);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...