Функция wp_kses_uri_attributes()
возвращает массив имен HTML-атрибутов, значения которых должны содержать URL. Это полезно для фильтрации и очистки пользовательского ввода, чтобы обеспечить соответствие спецификациям HTML и безопасное использование URL-адресов.
wp_kses_uri_attributes(): string[]
Возвращаемое значение
- Возвращает массив строк, содержащих имена HTML-атрибутов, которые должны содержать URL.
Пример 1: Получение списка URI-атрибутов
В этом примере мы получим список всех атрибутов, значения которых должны содержать URL.
$uri_attributes = wp_kses_uri_attributes();
print_r($uri_attributes);
/* Ожидаемый результат:
Array
(
[0] => action
[1] => archive
[2] => background
[3] => cite
[4] => classid
[5] => codebase
[6] => data
[7] => formaction
[8] => href
[9] => icon
[10] => longdesc
[11] => manifest
[12] => poster
[13] => profile
[14] => src
[15] => usemap
[16] => xmlns
)
*/
Пример 2: Очистка значения атрибута с URI
В этом примере мы продемонстрируем, как очистить значение атрибута, который должен содержать URI, используя функции KSES для обеспечения безопасности.
$uri_attributes = wp_kses_uri_attributes();
$allowed_protocols = wp_allowed_protocols(); // Получаем разрешенные протоколы
$attr_name = 'href'; // Имя атрибута
$attr_value = 'http://example.com'; // Значение атрибута
if (in_array(strtolower($attr_name), $uri_attributes)) {
$attr_value = wp_kses_bad_protocol($attr_value, $allowed_protocols); // Очищаем значение атрибута
}
// Проверим, что у нас в итоге
echo $attr_value; //> http://example.com
Пример 3: Обработка неподходящего протокола
Теперь рассмотрим случай, когда значение атрибута содержит неподходящий протокол. Мы проверим, что функция очищает его правильно.
$uri_attributes = wp_kses_uri_attributes();
$allowed_protocols = wp_allowed_protocols();
$attr_name = 'src'; // Имя атрибута
$attr_value = 'ftp://example.com/file.txt'; // Неподходящее значение атрибута
if (in_array(strtolower($attr_name), $uri_attributes)) {
$attr_value = wp_kses_bad_protocol($attr_value, $allowed_protocols); // Очищаем значение атрибута
}
// Проверим результат
echo $attr_value; //> //example.com/file.txt (если ftp не разрешен)
Заключение
Функция wp_kses_uri_attributes()
является важным инструментом для обработки атрибутов, содержащих URL. Она обеспечивает соответствие стандартам безопасности и помогает защитить сайт от потенциальных уязвимостей, связанных с неправильным использованием URL. Использование этой функции в сочетании с другими функциями очистки WordPress позволяет эффективно обрабатывать пользовательский ввод и поддерживать безопасность вашего сайта.