Как очистить AJAX отправить HTML-данные и JSON-данные в WordPress - PullRequest
0 голосов
/ 14 июня 2019

У меня есть ajax, который отправляет html-содержимое и структуру json в функцию php.Мне нужно, чтобы

  • json-данные были сохранены в базе данных
  • html-контент для сохранения в php-файле

    Перед этим мне нужно получить этиценности и дезинфицировать их.Я прочитал от безопасности плагина Wordpress, что $ _POST должен быть очищен.Я читал о серии sanitize_*() и не смог найти подходящую для содержимого html и данных структуры json.Поэтому мой вопрос:

    1. Если данные, закодированные в формате json (строка json), требуют очистки только в виде простого текста или не требуют очистки?
    2. Достаточно ли wp_kses для очистки содержимого HTMLв WordPress или какие-либо другие функции?

Это структура JSON, которую я передаю через AJAX.Чисто какой-то текст

{
    "row": [{
        "data_id": "1001",
        "type": "L",
        "child": [{
            "data_id": "1002",
            "data_type": "M",
            "child": [{
                "data_id": "1003",
                "data_type": "S",
                "child": ""
            }]
        }]
    }],
    "data_id": "Size",
    "data_type": "Cloth"
}

1 Ответ

1 голос
/ 14 июня 2019

Для каждого ключа массива в $_POST необходимо использовать одно из следующих значений в зависимости от типа поля:

  1. sanitize_text_field (все текстовые поля, переключатель, выбор значений параметров и т. Д.)
  2. sanitize_textarea_field / wp_kses (для текстовых областей)
  3. esc_url (для URL)
  4. sanitize_email

Это должно санироватьбольшинство элементов Отправленных данных.

PS: Если вы каким-либо образом напрямую взаимодействуете с базой данных, просто убедитесь, что вы используете $wpdb->prepare и $wpdb->execute для защиты запросов к базе данных (не необходимость, ахорошая практика, которой меня учили).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...