Intereting Posts
link wordpress и stackoverflow Включить связанные настраиваемые поля из одного типа сообщений в канал JSON другого типа Многоуровневое разъяснение как вставлять миниатюры определенной категории внутри разных контейнеров Невозможно получить шаблон меню с помощью ходунки скрипт wp_mail с jquery post Постоянная ссылка с под-подкатегорией и названием как создать дополнительную миниатюру сообщения с объединением изображения значка? Добавить строку запроса в ссылки wp_link_pages Как установить wp_dropdown_users так, чтобы он показывал только авторов? $ wpdb-> get_var несколько запросов в одной проверке базы данных Таксономия: почему «with_front» => false НЕ РАБОТАЕТ? Наиболее просматриваемые сообщения за последние 2 дня с использованием WP_Query Как я могу изменить цикл из плагина, не удаляя другие фильтры? У меня возникла проблема с навигационным меню моего веб-сайта

Безопасное сохранение кода (html / js ..) в базе данных

Поэтому я работаю над небольшим плагином, и этот плагин позволяет пользователям сохранять данные в моем db. Эти данные в основном представляют собой обычный текст, но в трех полях у них будут теги.

1 поле можно использовать для сохранения всего кода (js / php / html ….) в мой db, а 2 поля могут принимать только JS-код.

Мой вопрос: как мне сохранить данные такого типа в БД для предотвращения инъекций и т. Д.

Я до сих пор не знаком со всем материалом проверки, поэтому любые советы и помощь будут приятными (не помещайте ссылки на документы WordPress в комментариях ниже, я уже читал их)

Мой код до сих пор

$wpdb->insert($table, array( 'field-no-tags' => sanitize_text_field($_POST['field-no-tags']), 'field-have-all-tags' => $_POST['field-have-all-tags'], 'field-have-js-tags' => $_POST['field-have-js-tags'] ) ,array( 's%', 's%', ) ); <form> <label>No code allowed</label> <textarea name="field-no-tags"></textarea> <label>All code allowed</label> <textarea name="field-have-all-tags"></textarea> <label>Only JS allowed</label> <textarea name="field-have-js-tags"></textarea> <button type="submit">Save</button> </form> 

Solutions Collecting From Web of "Безопасное сохранение кода (html / js ..) в базе данных"

есть два возможных вектора впрыска, сторона сервера и клиентская сторона

  • стороне сервера. Просто не пишите свой собственный SQL и используйте API доступа с более высоким уровнем доступа, в вашем случае, вероятно, update_option . Если вы должны получить доступ к БД на более низком уровне, убедитесь, что API использует wpdb :: prepare при создании SQL, что верно для insert но не соответствует query что требует использования prepare если вы используете заполнители в запросе.

  • клиентская сторона. Вы никогда не должны позволять никому, кто не является админом сайта, администрировать плагин. Это означает, что он не подходит для использования в сети, если вы не ограничиваете доступ только к супер администратору. Любая другая конфигурация позволит пользователям сайта выполнять атаки XSS против других пользователей сайта.