Безопасный вывод

Всякий раз, когда происходит вывод данных, вы должны убедиться, что они правильно экранированы перед отображением. Экранирование в данном контексте означает удаление нежелательных данных, таких как неправильные HTML или скриптовые теги (тем самым предотвращая XSS атаки).

Экранирование

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

esc_html()

Используйте эту функцию в любое время когда элемент HTML окружает раздел отображаемых данных.

esc_url()

Используйте эту функцию для всех URL, включая те, которые находятся в атрибутах HREF и SRC HTML-элементов.

esc_js()

Используйте эту функцию для инлайн Javascript

esc_attr()

Используйте эту функцию для всего остального, что есть в атрибутах HTML элементов

ПРИМЕЧАНИЕ: Большинство функций WordPress правильно подготавливают данные для вывода, так что вы не должны снова экранировать данные. Например, вы можете безопасно вызывать the_title() без экранирования.

Экранирование с локализацией

Вместо использования echo для вывода данных, обычно используют функции локализации WordPress, такие как _e() или __().

В этом случае, есть дополнительные вспомогательные функции, которые сочетают в себе локализацию и экранирование. Это:

Эти функции просто обернут функцию локализации внутри экранирующей функции:

Экранирование с допустимым HTML

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

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

wp_kses_post() будет экранировать вывод таким же образом, за исключением того, что разрешенные HTML предопределены, чтобы использовать одни и те же элементы, что и в контенте.

Заключение

Всякий раз, когда вы интерпретируете данные, убедитесь, что правильно экранировали их. Экранирование помогает предотвратить такие проблемы, как XSS.

Навигация по разделам:

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *