Защита ввода данных - это процесс очищения (фильтрации) входных данных.
Вы используете очистку, когда не знаете, чего ожидать, или не хотите быть строгим с валидацией данных.
Всякий раз, когда вы принимаете потенциально опасные данные, важно их проверять или очищать.
Очистка данных
Самый простой способ очистки данных - это встроенные функции WordPress.
Ряд вспомогательных функций sanitize_*() очень полезен, так как эти функции гарантируют, что вы получите безопасные данные, и это требует минимальных усилий с вашей стороны:
- sanitize_email()
- sanitize_file_name()
- sanitize_hex_color()
- sanitize_hex_color_no_hash()
- sanitize_html_class()
- sanitize_key()
- sanitize_meta()
- sanitize_mime_type()
- sanitize_option()
- sanitize_sql_orderby()
- sanitize_text_field()
- sanitize_title()
- sanitize_textarea_field()
- sanitize_title_for_query()
- sanitize_title_with_dashes()
- sanitize_user()
- esc_url_raw()
- wp_kses()
- wp_kses_post()
Пример
Допустим, у нас есть поле ввода с именем 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
- Преобразовывает одиночные символы (<) в сущность
- Удаляет теги
- Удаляет разрывы строк, табуляции и дополнительное белое пространство
- Удаляет октеты