違いは何ですか?どちらを使用すればよいですか?
私はwp_verify_nonceが制限時間をチェックすることを知っています、そしてcheck_admin_referer私はwp_verify_nonceを呼び出すと同時に管理URLセグメントをチェックすると思いますが、私はどれをいつ使うべきかについて少し混乱しています。
明快さをありがとう。
I 思考 check_admin_referer
がノンスをチェックしました(wp_verify_nonce
、 、および 参照URLを呼び出します。コアコードを調べた後、これはしていないことに気付きました。それに、Ryan Borenは次のように答えた。
実際には、nonceが有効であれば、参照元はチェックされるべきではありません。参照元の信頼性が低いことが、ナンスが使用される理由の1つです。 Nonceは参照元チェックを完全に置き換えます。参照元をチェックするのは、-1下位互換性条件を処理するときだけです。 -1は誰かがnonceを使用していないことを意味するため、参照元チェックにフォールバックします。この使用法は現在非常にまれです。 check_admin_referer()はリファラーチェックをほとんどしないため、名前が悪くなりました。それはcheck_nonce()のような何かもっと良い名前になるでしょうが、私達は昔のことと昔のためにそれをそのままにしておきます。
実際には違いはありません。
check_admin_referer
を頼りにしないでください、注意してください。
wp_verify_none
が設定されている場合にのみ_wpnonce
が含まれます。DIE()
はしません。代わりに、falseを返します...この擬似コードを見てください( 完全なソースは here ):
function check_admin_referer( $action = -1, $query_arg = '_wpnonce' ) {
.....
$result = isset($_REQUEST[$query_arg]) ? wp_verify_nonce($_REQUEST[$query_arg], $action) : false;
do_action( 'check_admin_referer', $action, $result );
if ( ! $result && ! ( -1 == $action && strpos( $referer, $adminurl ) === 0 ) ) {
die(...);
}
return $result;
}