101 Руководство по функции Wp_kses: экранирование, безопасность и многое другое!.
101 Руководство по функции Wp_kses: экранирование, безопасность и мног.
Многие из читателей часто задают вопрос: как избежать использования данных в HTML? Если вас тоже беспокоит то же самое, вы попали в нужное место. Вы можете проверить свои данные с помощью wp_kses !!
Если вы разработчик , который пишет HTML / CSS / JS, вы должны очень внимательно относиться к
Что такое функция wp_kses в ?
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?
wp_kses обычно произносится как wp-kisses. Он используется для очистки данных и фильтрации вредоносного ввода. Это индивидуальное решение, чтобы решить, что принять, а что отклонить.
Функция wp_kses позволяет идентифицировать и определять то, что вам нужно, и удаляет все остальное. Это дает вам точку начала отладки, если что-то пойдет не так. Он служит контрольной точкой для проверки ввода и выхода при выходе.
Варианты функции wp_kses
Действительно сложно указать все разрешенные теги и атрибуты. Таким образом, предоставляет варианты функций, которые позволяют использовать 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?
А пока вы знакомы с функцией 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» не также не допускается.
PHP strip_tags удаляет теги HTML и PHP из строки. Он принимает два аргумента: первый – строку, которую нужно отфильтровать, а второй – строку разрешенных тегов.
string strip_tags (string $str [, string $allowable_tags ] )
Он возвращает строку после необходимого удаления. Он также очищает содержимое тегов «сценарий» и «стиль». Но здесь wp_kses дает явное преимущество. Он удаляет строку, но не удаляет содержимое заданных тегов.
Во-вторых, PHP strip_tags может полностью нарушить результаты. Например, символ «меньше», который является открывающим знаком для потенциального тега HTML. Но если он не передан во второй параметр функции strip_tags (), он не будет отображаться, тогда как wp_kses () эффективно отображает HTML.
Заключительные слова
Функция wp_kses более безопасна, чем strip_tags в PHP. Wp_kses выдерживает атаки javascript, тогда как strip_tags ломается. wp_kses помогает предотвратить атаки javascript, отрицая их. Поскольку Javascript не передается как разрешенный протокол по умолчанию в функции wp_kses. И, надеюсь, вы его тоже не включите. Таким образом, он выводит javascript как безобидный простой текст, а не выполняет предупреждение javascript. Итак, wp_kses – более разумный выбор для эффективной проверки и очистки данных.
Источник записи: