Безопасное сохранение кода (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 против других пользователей сайта.