函数文档

wp_check_jsonp_callback()

💡 云策文档标注

概述

wp_check_jsonp_callback() 函数用于验证 JSONP 回调函数名称的有效性,通过限制字符集来增强安全性,防止 XSS 攻击。

关键要点

  • 函数检查 JSONP 回调名称是否仅包含字母数字字符和点字符(.),以降低直接输出用户输入导致的 XSS 风险。
  • 参数 $callback 为必需字符串,表示待验证的回调函数名称。
  • 返回布尔值,指示回调名称是否有效。
  • 函数内部使用正则表达式 preg_replace 检测非法字符,若未发现非法字符则返回 true。
  • 该函数自 WordPress 4.6.0 版本引入。

代码示例

function wp_check_jsonp_callback( $callback ) {
    if ( ! is_string( $callback ) ) {
        return false;
    }

    preg_replace( '/[^w.]/', '', $callback, -1, $illegal_char_count );

    return 0 === $illegal_char_count;
}

注意事项

  • 函数仅验证回调名称的格式,不检查其实际存在性或安全性,开发者需结合其他措施确保整体安全。
  • 相关函数包括 wp_is_jsonp_request() 和 WP_REST_Server::serve_request(),用于处理 JSONP 请求和 REST API 服务。

📄 原文内容

Checks that a JSONP callback is a valid JavaScript callback name.

Description

Only allows alphanumeric characters and the dot character in callback function names. This helps to mitigate XSS attacks caused by directly outputting user input.

Parameters

$callbackstringrequired
Supplied JSONP callback function name.

Return

bool Whether the callback function name is valid.

Source

function wp_check_jsonp_callback( $callback ) {
	if ( ! is_string( $callback ) ) {
		return false;
	}

	preg_replace( '/[^w.]/', '', $callback, -1, $illegal_char_count );

	return 0 === $illegal_char_count;
}

Changelog

Version Description
4.6.0 Introduced.