安全输入是净化(清理、过滤)输入数据的过程。
当你不知道会发生什么,或者不想严格要求数据验证时,可以使用净化。
任何时候,当您接受潜在的不安全数据时,验证或清理它都很重要。
请记住:即使管理员也是用户,用户会故意或意外输入不正确的数据。保护他们不受伤害是你的职责。
清理数据
清理数据的最简单方法是使用内置的WordPress函数。
sanitize_*()
系列辅助函数非常好,因为它们确保您最终获得安全的数据,并且只需要您付出最小的努力:
- 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_text_field()
- sanitize_textarea_field()
- sanitize_title()
- sanitize_title_for_query()
- sanitize_title_with_dashes()
- sanitize_user()
- sanitize_url()
- wp_kses()
- wp_kses_post()
实例
假设我们有一个名为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是否无效
- 转换单个小于号字符(<)为实体
- 删除所有标签
- 删除换行符、制表符和额外的空格
- 删除八进制