用途:这是一份 WordPress 安全编码规范,用于处理用户输入、数据库查询、文件操作、身份认证与输出时的安全防护,核心原则是“输入时校验与清理,输出时转义”。
主要能力:
- 输出转义防 XSS:按上下文选用 esc_html()、esc_attr()、esc_url()、esc_js()、esc_textarea()、esc_xml(),受控 HTML 用 wp_kses()/wp_kses_post();翻译字符串用 esc_html_e()、esc_attr__() 等;并列出可直接输出的自动转义函数。
- CSRF 防护:用 wp_nonce_field()、wp_nonce_url()、wp_create_nonce() 创建,用 wp_verify_nonce()、check_admin_referer()、check_ajax_referer() 校验;强调 nonce 不能替代授权,需配合 current_user_can()。
- 输入校验与清理:sanitize_text_field()、sanitize_email()、sanitize_key()、absint() 等,清理前先 wp_unslash(),避免使用 $_REQUEST,先 isset() 再读取,枚举值用白名单。
- SQL 注入防护:始终用 $wpdb->prepare() 与 %s/%d/%f/%i 占位符,优先使用 insert/update/delete 便捷方法或 WP_Query 等查询 API。
- 权限与授权:检查能力而非角色,对象级用 edit_post 等元能力,可注册自定义能力并用 map_meta_cap。
- 文件安全:用 wp_handle_upload()、wp_check_filetype_and_ext() 校验上传,每个 PHP 文件顶部加 defined( 'ABSPATH' ) || exit;。
- 安全重定向:用 wp_safe_redirect() 配合 wp_validate_redirect() 并 exit。
- AJAX 与 REST API:AJAX 处理器校验 nonce 与权限;register_rest_route() 必须提供 permission_callback,参数用 validate_callback 与 sanitize_callback。
- 常见漏洞模式对照与提交前安全检查清单。
使用方式:作为编写或审查 WordPress 插件、主题代码时的参考规范,按清单逐项自查。
限制:资料未提供具体安装命令、版本要求或收费信息;部分内容(如文件上传章节)在原文中被截断。