Функция 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-атак и позволяет управлять содержимым. Использование этой функции особенно полезно в случаях, когда данные получаются от пользователей, и необходимо гарантировать их безопасность перед выводом на экран.