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.
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. |