Руководство разработчика плагинов для WordPress (часть 12) 10 Марта 2018

Руководство разработчика плагинов для WordPress (часть 12)

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

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

Санитация данных

Простейший путь санитации данных это использование встроенных функций WordPress. Серии вспомогательных фукнций sanitize_*() являются суперприятными, поскольку они удостоверяют, что вы передаете безопасные данные, и они требуют минимального внимания с вашей стороны:
  • sanitize_email()
  • sanitize_file_name()
  • sanitize_html_class()
  • sanitize_key()
  • sanitize_meta()
  • sanitize_mime_type()
  • sanitize_option()
  • sanitize_sql_orderby()
  • sanitize_text_field()
  • sanitize_title()
  • sanitize_title_for_query()
  • sanitize_title_with_dashes()
  • sanitize_user()
  • esc_url_raw()
  • wp_filter_post_kses()
  • wp_filter_nohtml_kses()

Пример

Скажем, у нас есть поле ввода, названный нами title.
<input id="title" type="text" name="title">
            
Вы можете провести обезвреживание данных с помощью функции sanitize_text_field():
$title = sanitize_text_field($_POST["title"]);
            update_post_meta($post->ID, "title", $title);
            
«За кулисами» sanitize_text_field() делает следующее:
  • проверяет на «невалидность» UTF-8
  • конвертирует единичные символы «меньше чем»
  • раскрывает все теги
  • удаляет разрывы строк, табуляции и лишнее «пустое» пространство
  • раскрывает октеты