...
WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

101 Руководство по функции Wp_kses: экранирование, безопасность и многое другое!

145

Многие из читателей часто задают вопрос: как избежать использования данных в HTML? Если вас тоже беспокоит то же самое, вы попали в нужное место. Вы можете проверить свои данные с помощью WordPress wp_kses !!

Если вы разработчик WordPress, который пишет HTML / CSS / JS, вы должны очень внимательно относиться к безопасности веб-сайта. Поскольку это один из важных аспектов защиты вашего сайта от хакеров, спамеров и т.д., Вам необходимо предотвратить внедрение вредоносного кода в ваши базы данных. Вы, наверное, слышали об экранировании данных. Это помогает защитить ваши данные перед их отображением для конечного пользователя. Он также предотвращает межсайтовый скриптинг (XSS). WordPress предоставляет встроенные функции для автоматического прекращения подобных действий. Но если вам нужно каким-то образом экранировать вывод, вам пригодится функция wp_kses в WordPress. Это даст вам контроль над тем, что разрешено, а что нет. Здесь, в Templatetoaster конструкторе тем WordPress иКонструктор сайтов WordPress, давайте узнаем, что такое функция wp_kses в WordPress.

Что такое функция wp_kses в WordPress?

WordPress Wp_kses – это механизм фильтрации HTML. Это расшифровывается как KSES Strips Evil Scripts. Он разрешает только безопасный контент и удаляет остальные теги. Безопасные теги хранятся в глобальной переменной WP, которая называется $ allowedtags. Функция Wp_kses гарантирует, что в выводе будут присутствовать только указанные имена элементов HTML, имена атрибутов и значения, включая разумные объекты HTML. Это означает, что KSES фильтрует ввод, чтобы удалить косые черты из кавычек PHP, прежде чем вы его вызовете.

Он имеет примерную структуру вроде

wp_kses( string $custom_content, array $allowed_HTML, array $allowed_protocols = array() )

Требуется три следующих аргумента

1. $ Custom_content – Первый аргумент – это исходная строка. Это означает, что вы сначала передадите контент для фильтрации. Вы можете получить эту строку от пользователя или базы данных. Если вы хотите обработать его, вы передадите его здесь, в функции.

2. $ allowed_HTML – это массив разрешенных тегов и атрибутов HTML. Итак, wp_kses принимает список разрешенных HTML-элементов в качестве второго аргумента. Вы можете увидеть пример массива allowed_html_tags следующим образом

allowed_html = array(
'a' => array(
'href' => array(),
'title' => array()
),
'br' => array(),
'em' => array(),
'strong' => array(),
);

Переменная содержит массив тегов. Каждый тег содержит массив допустимых параметров. Чтобы указать теги без разрешенных параметров, будет использоваться пустой массив.

3. $ allowed_protocols – этот аргумент используется для передачи разрешенного протокола. Это необязательно. Вы можете указать, хотите ли вы принимать HTTP, HTTPS, FTP и игнорировать TelNet, JavaScript и т.д.

Эта функция возвращает отфильтрованный контент только с разрешенными элементами HTML.

Какова цель wp_kses?

WordPress wp_kses обычно произносится как wp-kisses. Он используется для очистки данных и фильтрации вредоносного ввода. Это индивидуальное решение, чтобы решить, что принять, а что отклонить.

Функция wp_kses позволяет идентифицировать и определять то, что вам нужно, и удаляет все остальное. Это дает вам точку начала отладки, если что-то пойдет не так. Он служит контрольной точкой для проверки ввода и выхода при выходе.

Варианты функции WordPress wp_kses

Действительно сложно указать все разрешенные теги и атрибуты. Таким образом, WordPress предоставляет варианты функций, которые позволяют использовать wp_kses с предварительно установленными разрешенными тегами и протоколами. В основном используется для проверки сообщений и комментариев для печати только содержимого из белого списка. Эти две функции заключаются в следующем

  • wp_kses_post()

Эта функция используется для очистки ввода с помощью разрешенных HTML-элементов для содержимого публикации. Содержание сообщения здесь относится к содержимому страницы типа “сообщение”, а не к данным $ _POST для форм.

<?php wp_kses_post( $data ); ?>

Он принимает содержимое сообщения в качестве аргумента и возвращает отфильтрованное содержимое с разрешенными элементами.

  • wp_kses_allowed_html ()

Эта функция используется для просмотра разрешенных элементов HTML для текущего содержимого. Он работает с помощью ловушки wp_kses_allowed_html, которая обеспечивает простой способ изменить разрешенный HTML.

<?php $allowed_tags = wp_kses_allowed_html( $context ); ?>

Требуется контент, для которого нужно получить теги. Допустимые значения: сообщение, полоса, данные, сущности или имя фильтра поля. Он вернет список разрешенных тегов HTML для заданного ввода. Возвращаемое значение – это многомерный массив с именем тега в качестве ключа. Он генерирует массив атрибутов в качестве значения.

Как использовать wp_kses?

А пока вы знакомы с функцией WordPress wp_kses. Но главное, как это работает? Чтобы прояснить это, приведу пример. Предположим, вы отображаете простую строку, используя различные теги HTML, такие как теги «strong», «Title», «br», «p», «anchor».

<?php
$str = '<title>Check Kses function</title> I am <strong>stronger</strong> and cooler every single day <a href="#">Click Here</a>.<p>I am stronger and cooler every single day.I am stronger and cooler every single day.I am stronger and cooler every single day.I am stronger and cooler every single day.I am stronger and cooler every single day</p>';
echo $str;

Когда вы получите его отображение с помощью эха, он даст результаты, как показано ниже.

Теперь отобразите ту же строку с помощью функции wp_kses. Где разрешены только теги strong, p, br.

$arr = array('br' => array(), 'p' => array(), 'strong' => array());
echo'<br>String using wp_kses function....<br>'.wp_kses($str,$arr);
?>

Он отобразит результирующую строку, как показано во втором абзаце экрана вывода. Он отражает только разрешенные теги strong, br, p, как определено в функции wp_kses, а тег привязки удаляется. Таким образом, не формируется ссылка на нажатие здесь текста. Точно так же нет названия назначен тег «Title» не также не допускается.

Wp_kses против strip_tags

PHP strip_tags удаляет теги HTML и PHP из строки. Он принимает два аргумента: первый – строку, которую нужно отфильтровать, а второй – строку разрешенных тегов.

string strip_tags (string $str [, string $allowable_tags ] )

Он возвращает строку после необходимого удаления. Он также очищает содержимое тегов «сценарий» и «стиль». Но здесь wp_kses дает явное преимущество. Он удаляет строку, но не удаляет содержимое заданных тегов.

Во-вторых, PHP strip_tags может полностью нарушить результаты. Например, символ «меньше», который является открывающим знаком для потенциального тега HTML. Но если он не передан во второй параметр функции strip_tags (), он не будет отображаться, тогда как WordPress wp_kses () эффективно отображает HTML.

Заключительные слова

Функция WordPress wp_kses более безопасна, чем strip_tags в PHP. Wp_kses выдерживает атаки javascript, тогда как strip_tags ломается. WordPress wp_kses помогает предотвратить атаки javascript, отрицая их. Поскольку Javascript не передается как разрешенный протокол по умолчанию в функции wp_kses. И, надеюсь, вы его тоже не включите. Таким образом, он выводит javascript как безобидный простой текст, а не выполняет предупреждение javascript. Итак, wp_kses – более разумный выбор для эффективной проверки и очистки данных.

Источник записи: https://blog.templatetoaster.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее