WordPress: безопасность ввода данных

· WordPress, Безопасность и Разработка плагинов · 1 мин чтения

Безопасность ввода данных — это процесс при котором идет проверка (чистка, фильтрация) данных.

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

Чистка данных

Самый простой способ — это использовать встроенные функции чистки в 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
  • Конвертирует символы «<» или «>» в безопасные
  • Очищает HTML тэги
  • Чистить перенос строк, табы и лишние пробелы