清理数据
不受信任的数据来自许多来源(用户、第三方网站,甚至您自己的数据库!),所有这些数据在使用之前都需要进行检查。
请记住:即使管理员也是用户,用户也会有意或无意地输入错误的数据。你的工作就是保护他们免受伤害。
清理输入是保护/清理/过滤输入数据的过程。验证优于清理,因为验证更具体。但当“更具体”不可能时,消毒就是下一个最好的选择。
例子
假设我们有一个名为的输入字段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
- 将单个小于号 (<) 转换为实体
- 删除所有标签
- 删除换行符、制表符和多余的空白
- 剥离八位字节
消除功能
有许多功能可以帮助您清理数据。
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_term()
sanitize_term_field()
sanitize_text_field()
sanitize_textarea_field()
sanitize_title()
sanitize_title_for_query()
sanitize_title_with_dashes()
sanitize_user()
sanitize_url()
wp_kses()
wp_kses_post()
无评论