| 开发者 | countteddy |
|---|---|
| 更新时间 | 2026年8月20日 04:05 |
| PHP版本: | 8.0 及以上 |
| WordPress版本: | 7.0 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
wp_options.HTTP_CF_CONNECTING_IP to identify the real attacker. Proxy headers from unverified origins are ignored to prevent IP spoofing.nullis-shield folder to the /wp-content/plugins/ directory, or install directly through the WordPress plugins screen.No. Nullis Shield targets registration-layer bot traffic. It can run alongside deeper file-scanning plugins without conflict, though it will often stop threats before they reach those layers.
No. IP resolution first verifies that the incoming connection originates from a genuine Cloudflare IP range before trusting the HTTP_CF_CONNECTING_IP header. Traffic not arriving from a verified Cloudflare range will use REMOTE_ADDR or HTTP_X_FORWARDED_FOR instead.
The scan includes a WooCommerce order guard — it will never flag or delete any subscriber account that has at least one associated order. However, you should review your registration flow before enabling this feature, especially if users commonly register without a first or last name.
Banning and lockout transients operate per-site. On uninstall, the plugin cleans up all data across every site in the network.
INSERT ... ON DUPLICATE KEY UPDATE, fixing a race condition where the counter could silently fail to increment if the option row didn't already exist.Retry-After header, computed from the stored ban expiry rather than reading transient internals — correct whether or not an object cache (Redis/Memcached) is active.X-Forwarded-For is no longer trusted by default — it was previously accepted unconditionally, letting an attacker spoof it to evade bans or frame another IP. It's now only trusted if the site owner explicitly declares a reverse-proxy range via the new nullis_shield_trusted_proxies filter.nullis_shield_ban_duration, nullis_shield_min_human_time, nullis_shield_max_token_age, nullis_shield_log_ip_format, and nullis_shield_trusted_proxies filter hooks.HTTP_CF_CONNECTING_IP originates from a genuine Cloudflare IP range before trusting it. Spoofed proxy headers are ignored.register_setting() now enforces strict yes/no sanitization callbacks.render() callback now re-verifies manage_options capability.target="_blank" links now include rel="noopener noreferrer".admin.css; CSS custom properties introduced for brand colour.:focus-visible ring added to all dashboard links; WCAG AA compliant.