有什么区别,我应该使用哪一个?
我知道wp\\u verify\\u nonce会检查时间限制,check\\u admin\\u referer我想会调用wp\\u verify\\u nonce并检查管理员url段,但我有点搞不清楚应该使用哪一个以及何时使用。
谢谢你的澄清。
有什么区别,我应该使用哪一个?
我知道wp\\u verify\\u nonce会检查时间限制,check\\u admin\\u referer我想会调用wp\\u verify\\u nonce并检查管理员url段,但我有点搞不清楚应该使用哪一个以及何时使用。
谢谢你的澄清。
我想check_admin_referer
检查了nonce(它确实调用wp_verify_nonce
, and 引用url。在深入研究了核心代码之后,我意识到它并没有做到这一点。我认为这是一个bug,于是报告了它,Ryan Boren回答说:
实际上,如果nonce有效,则不应检查推荐人。引用者的不可靠性是使用nonce的原因之一。Nonces完全取代了推荐人检查。我们唯一检查推荐人的时间是在处理-1向后兼容性条件时-1意味着有人没有使用nonces,所以我们退回到推荐人检查。这种用法现在非常罕见。check\\u admin\\u referer()的名称很糟糕,因为它几乎从不进行referer检查。最好将其命名为check\\u nonce(),但为了后面的兼容性和旧时代的缘故,我们保持原样。
所以事实上没有区别。
check_admin_referer()
没有正确的参数!因为在某些情况下it may not die()
(与您的期望相反),它只会返回false
回答查看概述的行为source code 逻辑:
function check_admin_referer( $action = -1, $query_arg = \'_wpnonce\' ) {
$result = isset( $_REQUEST[ $query_arg ] ) ? wp_verify_nonce( $_REQUEST[ $query_arg ], $action ) : false;
//Now, "die() check"
if ( ! $result && ( -1 !== $action || strpos( wp_get_referer(), admin_url() ) !== 0 ) ) {
die();
}
return $result;
}
因此,您需要了解逻辑的作用。此处细分:A) 如果你打电话check_admin_referrer()
无参数:
记住,它将使用自动内置的_wpnonce
值(这是安全的,但在提交时仍要记住该字段)default -1
行动价值,引领die() check
to be skipped and function will not die()
if ( check_admin_referer() ) exit;
check_admin_referrer
要自动死亡,则应始终创建nonce&;使用参数调用它:check_admin_referrer($action_name, $name_field );
禁用do\\u操作(“admin\\u init”)会产生什么影响;在管理中。php make?我禁用了此功能,因为每当我尝试插入特色图像时,都会出现404错误,即媒体上传。php和ajax管理。在服务器中找不到php。禁用do\\u操作(“admin\\u init”)后,除了管理设计消失之外,一切都很好。然后我手动勾选经典颜色。css。ThanksSabin公司