三分钟热度教程:WordPress插件开发之给用户输入的数据消消毒

11月/22日/WordPress/浏览 92

因为,我只能保持三分钟热度,所以,知识点一定要在三分钟之内讲完……


作为一个程序员,大家都知道,用户输入的数据,是不可信的。所以,对于用户输入的数据一定要消毒处理。


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()


函数的用途,从名字上就能看出来了,只有 wp_kses 看上去比较麻烦。wp_kses 可理解为有条件的消毒-可以自定义规则,这个函数以后再说。今天,先学习一下,使用频率最高的函数 sanitize_text_field 。


使用 input 控件提交的数据,都要用 sanitize_text_field 消毒。


<input id="title" type="text" name="title">


$title = sanitize_text_field( $_POST['title'] );
update_post_meta( $post->ID, 'title', $title );


sanitize_text_field 具体都干了点什么呢?


检查无效的UTF-8 -> 将单个字符(<)转换为实体 -> 清理所有标记 -> 删除换行符、制表符和多余空格 -> 清理八位字节


发表评论

暂无评论,抢个沙发...

客服 工单