Intereting Posts
Удалить дублируемую ссылку на продукт из WooCommerce Page Row Actions Как получить роль пользователя определенного блога в многопользовательском режиме? Перенос сайта WordPress на новый сервер Проверяет ли необходимость в блоге? Как я могу скрыть боковую панель на определенных страницах? Как получить пост-идентификатор в моем плагине? Удалите путь папки от wp_get_attachment_url, чтобы показать только имя файла. Организовать функции.php Неопределенная константа с отладочной установкой в ​​true Правильно отображать сообщения на главной странице Как разделить созданные таблицы таблиц плагинов между двумя сайтами WordPress Включить почтовый формат в постоянную ссылку Отображение вывода короткого кода через Options Framework WordPress не использует файлы шаблонов после обновления Permalink Виджет: пользовательский тип публикации Post Post Dropdown на стороне администратора

Защищенная пользовательская форма WPDB

Я создаю настраиваемую форму для обновления строк во вторичной базе данных MYSQL, отличной от слова WordPress. Эта форма является общедоступной, и каждый пользователь может получить к ней доступ. Поэтому я создал плагин, и я также использую wpdb для подключения к базе данных.

Как я могу сделать это безопасным способом?

Я использую sanitize_text_field (), а затем wpdb-> update (). Является ли это безопасным или следует использовать esc_sql ()?

Если я не могу использовать wpdb-> update (), потому что мне нужно иметь некоторые! = Поля в where clauses, нормально ли использовать sanitize_text_field (), затем wpdb-> prepare (), а затем wpdb-> query ()?

При вводе пользовательского ввода в базу данных хороший способ:

  1. Проверка данных : подтвердите данные в соответствии с данными, которые вы ожидаете. Например: строка HTML, номер, адрес электронной почты, URL, любой текст без HTML и т. Д. Никогда не доверяйте при вводе пользователя или проверке на стороне клиента. Вы можете сделать здесь также санитарию, но она не заменяет проверку данных и не заменяет сканирование данных.
  2. SQL escape : никаких объяснений, необходимых здесь, я думаю. WorPress предоставляет некоторые функции и методы для этого. esc_sql – это общая функция для подготовки строк, которые будут использоваться в запросах базы данных. Но это не всегда необходимо, если вы используете класс wpdb. Например, при использовании $wpdb->insert и $wpdb->update данные не должны быть скопированы, потому что это будет сделано для вас.

Если вы используете $wpdb->query , лучшим методом scape для запроса является метод $wpdb->prepare . Дополнительные методы scape доступны в классе wpdb; см. это в том, как использовать $wpdb->prepare и это для выхода данных перед взаимодействием с базой данных .