确保用户是从另一个管理页面引用的。

原型

check_admin_referer( int|string $action = -1, string $query_arg = '_wpnonce' )

描述

避免安全漏洞。

参数

$action (int|string) (Optional) 行动现时。

$query_arg (string) (Optional)  在$ _REQUEST中检查nonce的关键(自2.5起)。

返回值

(false|int)  如果nonce无效,则为false;如果nonce有效并且在0-12小时之前生成,则为1;如果nonce有效并且在12-24小时之前生成,则为2。

源文件

路径:wp-includes/pluggable.php

<?php
...
function check_admin_referer( $action = -1, $query_arg = '_wpnonce' ) {
	if ( -1 == $action )
		_doing_it_wrong( __FUNCTION__, __( 'You should specify a nonce action to be verified by using the first parameter.' ), '3.2.0' );
	$adminurl = strtolower(admin_url());
	$referer = strtolower(wp_get_referer());
	$result = isset($_REQUEST[$query_arg]) ? wp_verify_nonce($_REQUEST[$query_arg], $action) : false;
	/**
	 * Fires once the admin request has been validated or not.
	 *
	 * @since 1.5.1
	 *
	 * @param string    $action The nonce action.
	 * @param false|int $result False if the nonce is invalid, 1 if the nonce is valid and generated between
	 *                          0-12 hours ago, 2 if the nonce is valid and generated between 12-24 hours ago.
	 */
	do_action( 'check_admin_referer', $action, $result );
	if ( ! $result && ! ( -1 == $action && strpos( $referer, $adminurl ) === 0 ) ) {
		wp_nonce_ays( $action );
		die();
	}
	return $result;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/check_admin_referer/