Intereting Posts
Получение содержимого Twitter в моем блоге Проблема WordPress с htmlentities wp_enqueue не будет работать над некоторыми файлами? Плановая задача WordPress вызывается, но не выполняется Добавление меток в настройку заголовков с API Есть ли способ сделать настраиваемые поля редактируемыми только администраторами? Addin plugin пользовательский тип сообщения для членов плагин Скрипты для короткого кода: конкатенация или загрузка отдельно? Относительный корневой URL для имени поддомена Пользовательские параметры главного экрана панели мониторинга Отключить автоматический URL-адрес WordPress Пользовательский формат div в TinyMCE Слияние с предыдущим div Условная логика работает только для отображения или скрытия? Как добавить страницу пользовательских подробностей для подписчика в панели администратора Как избежать имени таблицы или имени столбца в SQL? esc_sql не делает этого

В каких запросах SQL / WordPress потребуется nonce?

Я разработчик PHP / JavaScript, и я новичок в WordPress. Сайт нашей компании основан на WordPress. Однако я создал много настраиваемых страниц PHP, не обращая внимания на структуру WordPress.

При создании форм для редактирования вещей, таких как сообщения, я замечаю, что многие вещи не работают должным образом с запросом $ wpdb-> (вставьте некоторый SQL здесь), но часто работают с WordPress wp_update_post () или update_post_meta () , и т.п.

Интересно, это связано с тем, что пользовательские запросы требуют проверки nonce? Я также новичок в nonces, но меня часто путают при работе с SQL, чтобы получить или отредактировать данные из базы данных WordPress, как и когда я буду носить.

С другой стороны, разве какие-либо функции WordPress не выполняют специальные проверки nonce?

Solutions Collecting From Web of "В каких запросах SQL / WordPress потребуется nonce?"

Вы можете быть немного смущены относительно цели и функции nonces в WordPress.

Рекомендуемое чтение:

  • WordPress Nonces
  • Введение в WordPress Nonces с примерами
  • Protect_Queries_Against_SQL_Injection_Attacks

Nonce – это «номер, используемый один раз», чтобы защитить URL-адреса и формы от определенных типов злоупотреблений, вредоносных или других.

Nonce поможет вам в некоторой степени обеспечить достоверность запроса, сделанного для данного URL-адреса, или использования конкретной формы для отправки данных, будь то на бэкэнде или в интерфейсе.

Он не имеет никакого отношения к использованию класса wpdb .

Как было показано в предыдущем вопросе, ваш запрос не работал из-за неправильного синтаксиса SQL.

Хорошим правилом является то, что URL-адреса или формы, особенно те, которые выполняют любые действия в вашей базе данных, всегда должны сопровождаться nonce, с помощью которых вы можете проверить действительность запроса.

Затем при вставке данных в базу данных, если вы должны писать необработанные SQL-запросы, вам следует использовать wpdb класс wpdb , в частности $wpdb->query() метод $wpdb->prepare() для проекта против SQL инъекции: Protect_Queries_Against_SQL_Injection_Attacks

Под капотом при использовании таких функций, как wp_insert_post или wp_update_post , WordPress вызывает либо $wpdb->insert() либо $wpdb->update() который в свою очередь вызывает $wpdb->query( $wpdb->prepate() ) , поэтому он заботится о санитации для вас.

Вот почему рекомендуется использовать основные функции WordPress при вставке или обновлении сообщений, postmeta, пользователей, usermeta и т. Д.

Таким образом, обязательно прочтите приведенные выше ссылки, так как они помогут вам лучше понять, что такое nonces, когда вы должны их использовать и как это сделать.