如何清理ajax在wordpress中发送html数据和json数据

mel*_*vin 1 wordpress

我有一个 ajax,它将一些 html 内容和 json 结构发送到 php 函数。我需要

  • json数据保存到数据库
  • html内容保存到php文件

    在此之前,我必须获取这些值并对它们进行清理。我从 WordPress 插件安全性中读到 $_POST 应该被清理。我读了有关该sanitize_*()系列的文章,但找不到适合 html 内容和 json 结构数据的系列。所以我的问题是

    1. json 编码(json 字符串)数据是否只需要清理为纯文本或不需要清理?
    2. WordPress 中的 html 内容清理是否wp_kses足够,或者还有其他功能吗?

这是我通过 ajax 传递的 json 结构。纯粹是一些文字

{
    "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"
}
Run Code Online (Sandbox Code Playgroud)

Fah*_*ikh 5

对于每个数组键,$_POST您应该根据字段类型使用以下之一:

  1. sanitize_text_field(所有文本字段、单选按钮、选择选项值等)
  2. sanitize_textarea_field/ wp_kses(对于文本区域)
  3. esc_url(对于网址)
  4. 清理电子邮件

这应该会清理发布数据的大部分元素。

PS:如果您以任何方式直接与数据库交互,请确保使用$wpdb->prepare$wpdb->execute保护您的数据库查询(不是必需的,而是我学到的一个很好的做法)。