回答:
私が思ったことはcheck_admin_referer
(それがコールしnonceを確認しwp_verify_nonce
、そして。。それは私がそれを報告したバグだと思っコアコードを掘り下げるた後、私はそれがこれをしなかったことに気づき参照元URLを、そしてライアン・ボレンは、次のように答えました:
実際、ナンスが有効な場合、リファラーはチェックされません。リファラーの信頼性の低さは、ナンスが使用される理由の1つです。ナンスは、リファラーチェックを完全に置き換えます。リファラーをチェックするのは、-1下位互換性条件を処理するときだけです。-1は、誰かがナンスを使用していないことを意味するため、リファラーチェックにフォールバックします。現在、この使用法は非常にまれです。check_admin_referer()は、リファラーチェックをほとんど実行しないため、名前が間違っています。check_nonce()のような名前を付けた方が良いでしょうが、バックコンパチや昔のためにそのままにしておきます。
したがって、実際には違いはありません。
期待しないcheck_admin_referer
でください、注意してください!
wp_verify_none
れた場合にのみ含まれます_wpnonce
!!!DIE()
。代わりに、falseを返します...このphseudo-codeをご覧ください(完全なソースは こちら):
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;
}