| 开发者 | shahzaibhassan |
|---|---|
| 更新时间 | 2026年8月22日 04:15 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
-1 response from admin-ajax.php/wp-content/plugins/nonce-failure-explainer, or install it through the Plugins screen.Because a nonce check failed. WordPress puts a one-time token into admin forms and links to prove a request came from your own page, rather than being forged by another site while you are logged in. When that token is missing, expired, or does not match, WordPress blocks the request and shows that message — without saying which of those it was. This plugin records the failure and tells you which.
A "number used once": a short-lived token WordPress adds to forms and action links to protect against cross-site request forgery. Nonces expire after 24 hours by default, which is why a page left open overnight often fails on submit.
No, and deliberately so. It is a diagnostic tool. Automatically extending nonce lifetimes or bypassing checks would weaken the protection nonces exist to provide. It tells you where the fault is; fixing it stays a decision you make.
That is the expected result on a healthy site, and since version 1.2.0 it is considerably more likely. The plugin now records only checks that actually blocked a request. Reproduce the failing request and it will be captured.
The recorder only does work when a check actually fails. There is no cost on successful requests, and events are written once per request rather than once per event.
Because WordPress does not distinguish an expired nonce from one generated for a different action — both simply fail to match. Where the cause can be established as fact, the plugin says "Confirmed". Where it is inference, it says so.
Yes. It is read-only, stores no secrets, and caps its own storage. The clearing action is capability-checked and nonce-protected.
Yes. The log is per-site, and uninstalling clears it across every site in the network.
Yes. Add the action string to the noncfaex_muted_actions filter and it is ignored entirely.
check_ajax_referer() and check_admin_referer() both take a $stop argument, and when it is false the caller is asking a question rather than guarding a door — Yoast SEO, for one, asks on every admin screen whether the current request is a Quick Edit save. Version 1.1.0 logged every one of those as a confirmed failure, naming a plugin that had done nothing wrong. On a real site that was the large majority of the log, and the noise pushed genuine failures out of the capped log within the hour.noncfaex_muted_actions filter.