Глядя на Кодекс для wp_insert_post (), он утверждает, что эта функция «... очищает переменные, выполняет некоторые проверки, заполняет отсутствующие переменные, такие как дата / время и т. Д.» (РЕДАКТИРОВАТЬ: я обновил запись Кодекса, чтобы включить более надежный пример включает в себя безопасность, а также метаданные и назначение категории)
Просто интересно, нужно ли мне проводить дальнейшую дезинфекцию, чтобы предотвратить взломы XSS и тому подобное, или достаточно ли делается с помощью функции.
Честно говоря, я проверил функцию в ядре и не нашел, например, wp_kses () или другой очистки для post_content, поэтому я немного обеспокоен. Все, что я могу видеть, это делает stripslashes_deep () на данных.
Так должен ли я запускать wp_kses () или что-то еще, когда я строю свои аргументы для wp_insert_post ()?
Какова лучшая практика здесь? Кодекс довольно осторожен в отношении безопасности в своем примере.
Благодарность
источник
<script>
внутрь?Ответы:
Вам не нужно ничего делать.
На загрузке WP:
'init' hook -> kses_init() -> kses_init_filters()
Потом:
wp_insert_post() -> sanitize_post() -> sanitize_post_field() -> 'content_save_pre' -> wp_filter_post_kses()
Аналогично для заголовков сообщений, текста комментариев и т. Д.
Вывод: wp_insert_post () очень очищен. :)
источник