bp_verify_nonce_request (字符串美元的行动''字符串query_arg美元“_wpnonce”)

确保用户从该站点的另一个页面请求操作。

描述

以避免主题内的安全漏洞。

参数

美元的行动

字符串)(可选)临时的行动。

默认值:“

query_arg美元

字符串)(可选)在$_REQUEST中查找nonce。

默认值:“_wpnonce”

返回

(保龄球)如果验证了nonce,则为True,否则为false。

文件:bp-core / bp-core-functions.php

函数bp_verify_nonce_request ($ action = ", $ query_arg = _wpnonce){/ *家URL  **************************************************************/ // 成碎片将查询字符串解析home_url(),奇怪的字符,/ /插件可能和其他有趣的事情去做。$parsed_home = parse_url('/', (is_ssl() ?'https': 'http')));//可能包含端口,如果它包含在home_url()。If (isset($parsed_home['port']) {$parsed_host = $parsed_home['host'] . php . php . php . php . php . php . php . php . php . php . php . php . php . php . php . php . php . php。“:”。美元parsed_home(“港口”);} else {$parsed_host = $parsed_home['host'];} //设置用于比较的主URL。$home_url = trim(strtolower($parsed_home['scheme'] .) '://' . $parsed_host . $parsed_home['path'] ), '/' ); /* Requested URL *********************************************************/ // Maybe include the port, if it's included in home_url(). if ( isset( $parsed_home['port'] ) && false === strpos( $_SERVER['HTTP_HOST'], ':' ) ) { $request_host = $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT']; } else { $request_host = $_SERVER['HTTP_HOST']; } // Build the currently requested URL. $scheme = is_ssl() ? 'https://' : 'http://'; $requested_url = strtolower( $scheme . $request_host . $_SERVER['REQUEST_URI'] ); /* Look for match ********************************************************/ /** * Filters the requested URL being nonce-verified. * * Useful for configurations like reverse proxying. * * @since BuddyPress 1.9.0 * * @param string $requested_url The requested URL. */ $matched_url = apply_filters( 'bp_verify_nonce_request_url', $requested_url ); // Check the nonce. $result = isset( $_REQUEST[$query_arg] ) ? wp_verify_nonce( $_REQUEST[$query_arg], $action ) : false; // Nonce check failed. if ( empty( $result ) || empty( $action ) || ( strpos( $matched_url, $home_url ) !== 0 ) ) { $result = false; } /** * Fires at the end of the nonce verification check. * * @since BuddyPress 1.6.0 * * @param string $action Action nonce. * @param bool $result Boolean result of nonce verification. */ do_action( 'bp_verify_nonce_request', $action, $result ); return $result; }

更新日志

更新日志
版本 描述
BuddyPress 1.6.0 介绍了。

问题吗?

我们总是很乐意帮助您解决代码或其他问题!搜索我们的开发人员文档联络支持,或与我们联系销售团队