保护输入是消毒(清理,过滤)输入数据的过程。
当您不知道期望或不想严格的数据验证时,您可以使用清洁。
任何时候您接受潜在的不安全数据,重要的是验证或清除它。
消毒数据
消除数据的最简单方法是使用内置的WordPress功能。
消毒的_*()
系列助手功能是非常好的,因为它们确保您的安全数据结束,并且您需要尽可能少的努力:
sanitize_email() //用于清理电子邮件地址,删除任何非法的字符,例如空格、引号、斜杠等。
sanitize_file_name() //用于清理文件名,删除任何非法的字符,例如空格、引号、斜杠等,并将文件名转换为小写。
sanitize_html_class() //用于清理 HTML 类名,删除任何非法的字符,例如空格、引号、斜杠等,并将类名转换为小写。
sanitize_key() //用于清理键名,删除任何非法的字符,例如空格、引号、斜杠等,并将键名转换为小写。
sanitize_meta() //用于清理元数据,删除任何非法的字符,例如空格、引号、斜杠等,并将元数据转换为小写。
sanitize_mime_type() //用于清理 MIME 类型,删除任何非法的字符,例如空格、引号、斜杠等,并将 MIME 类型转换为小写。
sanitize_option() //用于清理选项值,删除任何非法的字符,例如空格、引号、斜杠等,并将选项值转换为小写。
sanitize_sql_orderby() //用于清理 SQL 查询中的 ORDER BY 子句,删除任何非法的字符,例如空格、引号、斜杠等。
sanitize_text_field() //用于清理文本字段,删除任何非法的字符,例如空格、引号、斜杠等。
sanitize_title() //用于清理标题,删除任何非法的字符,例如空格、引号、斜杠等,并将标题转换为小写。
sanitize_title_for_query() //用于清理标题以进行数据库查询,删除任何非法的字符,例如空格、引号、斜杠等,并将标题转换为小写。
sanitize_title_with_dashes() //用于清理标题,并将空格和其他非法字符替换为破折号。
sanitize_user() //用于清理用户名,删除任何非法的字符,例如空格、引号、斜杠等,并将用户名转换为小写。
esc_url_raw() //用于清理 URL,删除任何非法的字符,例如空格、引号、斜杠等。
wp_filter_post_kses() //用于清理文章内容中的 HTML 标签和属性,只允许一些基本的标签和属性。
wp_filter_nohtml_kses() //用于清理文本内容中的 HTML 标签和属性,删除所有 HTML 标签和属性。
示例
假设我们有一个名为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
- 将单个小于字符(<)转换为实体
- 贴上所有标签
- 删除换行符,标签和额外的空格条字节