不受信任的数据来自许多来源(用户、第三方站点,甚至您自己的数据库!),所有这些数据在使用前都需要进行检查。

请记住:即使是管理员也是用户,用户会有意或无意地输入不正确的数据。你的工作是保护他们免受自己的伤害。

清理输入是保护/清理/过滤输入数据的过程。验证优先于清理,因为验证更具体。但是,当“更具体”是不可能的时,消毒是下一个最好的选择。

假设我们有一个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()

  1. 检查无效的 UTF-8
  2. 将单个小于字符 (<) 转换为实体
  3. 去除所有标签
  4. 删除换行符、制表符和多余的空格
  5. 清楚八位字符

 

清除函数

有许多功能可以帮助您清理数据。