Как безопасно дезинфицировать текстовую область, которая принимает полный ввод HTML

9

Я разрабатываю плагин, который позволяет пользователю отправлять электронные письма в формате HTML из администратора WordPress. Как я должен дезинфицировать входные данные textarea? Он должен содержать весь диапазон HTML-тегов, которые могут появиться в электронном письме в формате HTML. Если я использую wp_kses()то я должен был бы использовать огромный список разрешенных тегов.

Текстовая область сохраняет свое содержимое в базу данных с помощью пользовательских опций.

tommyf
источник

Ответы:

14

Для вас уже создан огромный список , который может быть возвращен в wp_kses_allowed_html()зависимости от контекста и отфильтрован через wp_kses_allowed_htmlфильтр, а также в контексте. Создание этого списка не должно быть сложным.

Тем не менее, «весь диапазон HTML-тегов, которые могут появиться в электронном письме в формате HTML», должен быть достаточно близок к диапазону, разрешенному для обычной публикации, поэтому wp_kses_post()вам придется проделать долгий путь без особых усилий.

s_ha_dum
источник
Да, это большой список. Поэтому я просто импортирую это в качестве параметра, а затем добавляю дополнительные данные, которые мне нужны, например, <html>и <body>т. Д.
tommyf
Да, если вам нужно, чтобы ваши пользователи включили так много разметки. Я бы сгенерировал эту часть для них, если бы это был я.
s_ha_dum