Функция wp_kses_data() используется для фильтрации содержимого, позволяя сохранять только определенные HTML-теги. Она предназначена для работы с не экранированными данными и помогает защитить ваш сайт от нежелательного кода.
string wp_kses_data( string $data );
Параметры
- $data (string, обязательный): Содержимое, которое необходимо отфильтровать. Ожидается, что строка не будет экранирована.
Возврат
Функция возвращает отфильтрованное содержимое в виде строки.
Применение функции
Функция wp_kses_data() работает на основе разрешенных тегов, определенных в текущем фильтре. Если для текущего фильтра не установлены специальные разрешенные теги, будет использован стандартный набор тегов из функции wp_kses(). Это позволяет контролировать, какие теги могут быть сохранены в содержимом.
Важно отметить, что перед использованием wp_kses_data() необходимо убедиться, что данные не были экранированы. Если данные пришли из форм, обработанных через $_POST, рекомендуется использовать wp_filter_kses().
Пример 1: Очистка строки от нежелательных HTML-тегов
Допустим, у вас есть строка с различными HTML-тегами, включая теги, которые не разрешены:
$string = '<div id="1st"><strong><i>Привет</i></strong><script>alert("Зловредный код");</script></div>';
$filteredString = wp_kses_data($string);
echo $filteredString;
// Вывод: <strong><i>Привет</i></strong>alert("Зловредный код");
В этом примере тег <div> и содержимое тега <script> были удалены, а теги <strong> и <i> остались.
Пример 2: Использование с безопасным контентом
Когда вы работаете с данными, полученными от пользователей, их необходимо предварительно очистить и экранировать:
$userInput = '<div class="example">Текст <strong>с выделением</strong><script>плохой код</script></div>';
$sanitizedInput = wp_kses_data($userInput);
echo $sanitizedInput;
// Вывод: <strong>с выделением</strong>
В этом примере все нежелательные теги были успешно удалены, оставив только безопасный текст.
Заключение
Функция wp_kses_data() является важным инструментом для обеспечения безопасности контента в WordPress. Она позволяет фильтровать HTML-теги, сохраняя только разрешенные, что значительно уменьшает риски XSS-атак и позволяет управлять содержимым. Использование этой функции особенно полезно в случаях, когда данные получаются от пользователей, и необходимо гарантировать их безопасность перед выводом на экран.