Описание функции wp_kses()
Функция wp_kses() позволяет фильтровать HTML-код, разрешая только определенные теги и атрибуты. Это помогает предотвратить XSS-атаки и другие типы вредоносного кода, обеспечивая безопасность пользовательского ввода. Функция используется в ситуациях, когда необходимо сохранить части HTML-кода, но при этом гарантировать, что они не содержат потенциально опасных элементов.
Она часто применяется в формах, комментариях и других областях, где пользователи могут вводить HTML.
Параметры
$data
Тип: string
Обязательный: Да
Описание: HTML-код, который необходимо фильтровать.
Возможные значения:
$allowed_html
Тип: array
Обязательный: Да
По умолчанию: array()
Описание: Массив разрешенных HTML-тегов и атрибутов.
Возможные значения:
p: class, id
strong:
em:
a: href, title
$allowed_protocols
Тип: array
Обязательный: Нет
По умолчанию: array(‘http’, ‘https’, ‘mailto’)
Описание: Массив разрешенных протоколов для ссылок.
Возможные значения:
http: 1
https: 1
mailto: 1
Возвращаемое значение
Тип: string
Описание: Отфильтрованный HTML-код.
Возможные значения:
• Строка с разрешенными HTML-тегами и атрибутами
• Пустая строка если все теги удалены
• Исходная строка если не было изменений
Примеры использования
Простой пример фильтрации HTML-кода.
$filtered = wp_kses('Hello, world!
', array('p' => array(), 'strong' => array()));
// $filtered будет 'Hello, world!
'
Позволяет только теги и
Фильтрация ссылки с разрешенными атрибутами.
Удаляет атрибут title, если он не разрешен
Фильтрация потенциально опасного кода.
$unsafe_input = '';
$filtered = wp_kses($unsafe_input, array());
// $filtered будет пустой строкой
Все теги были удалены
Фильтрация пользовательского ввода в плагине.
$content = wp_kses($user_input, array('p' => array(), 'a' => array('href' => array())));
// $content будет содержать только безопасные теги
Фильтрация комментариев пользователей.
$user_comment = 'User comment
';
$filtered_comment = wp_kses($user_comment, array('p' => array()));
// $filtered_comment будет 'User comment
'
Удаляет скрипты и оставляет только
Безопасность
Валидация входных данных: Функция проверяет входные параметры на корректность.
Санитизация: Входные данные очищаются, чтобы предотвратить атаки.
Рекомендации: Используйте wp_kses() для всех пользовательских вводов, где необходимо сохранить HTML.
— Связанные функции
Фильтрует HTML-код как в постах.
Фильтрует данные, позволяя только безопасные HTML-теги.
— Хуки
Фильтрует массив разрешенных HTML-тегов и атрибутов.
— Примечания
– Ограничения
Некоторые теги могут быть удалены в зависимости от настроек безопасности.
– Частые проблемы
- Проблемы при недостаточном разрешении тегов для нужного HTML.
- Некорректный вывод, если не заданы необходимые атрибуты.