| 开发者 | hanuitsolutions |
|---|---|
| 更新时间 | 2026年9月22日 19:12 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
wp-content/uploads is flagged outright, since WordPress never legitimately places runnable code there.cron option regardless of whether any currently-loaded code registers a handler for it. Malware commonly schedules a job under an unfamiliar hook name and re-adds its own callback dynamically, so the job keeps firing even after the plugin/theme file that "owns" it is deleted. Hanu Malware Guard snapshots every scheduled cron event on each page load, flags any hook with no currently registered callback ("orphan") or a randomly-generated-looking name, and lets you:pre_schedule_event filter).authenticate filter, so it covers both wp-login.php and XML-RPC logins (both authenticate through the same core wp_authenticate() call). Manage active lockouts and view recent failed attempts on the Login Security page.?author=N and REST /wp/v2/users username enumeration, and requests whose URL contains obvious SQL-injection / path-traversal / PHP-injection strings. Logged-in administrators are always exempt from the query-string check so normal site use is never at risk of self-lockout. Blocked requests are logged on the Firewall page.X-Content-Type-Options, X-Frame-Options, Referrer-Policy, and a Content-Security-Policy: frame-ancestors 'self' (clickjacking protection only — no script-src policy, since that reliably breaks themes/page builders unless hand-tuned per site).wp-admin/wp-includes against the official checksums WordPress.org publishes for your exact version, and additionally flags any PHP file physically present in those folders that isn't part of the official manifest at all (a classic place to hide a backdoor, since admins assume "core" never changes). Findings appear in Scan Results alongside everything else.wp-content/uploads (.htaccess/web.config, with an Nginx snippet shown for reference), and disable the built-in wp-admin file editor.
External services
This plugin makes one outbound HTTP request, only when you run "Check Core File Integrity" (manually or via the daily scheduled scan): it calls the official WordPress.org checksums API at https://api.wordpress.org/core/checksums/1.0/?version={your WP version}&locale={your locale} to fetch the known-good hash list for your exact WordPress version. No site data, file contents, or personal information is sent — only your WordPress version number and locale, which is required for the API to return the right checksum set. See the WordPress.org API documentation and privacy policy: https://wordpress.org/about/privacy/. No other external service is contacted by this plugin.
hanu-malware-guard folder to /wp-content/plugins/, or install directly from the WordPress Plugin Directory.No security scanner can guarantee that, and you should be skeptical of any that claims to. The signature scanner and core-integrity checker produce heuristic matches for you to review — they are a strong starting point, not a certified clean bill of health. Always keep offline backups regardless.
Inspect the snippet shown in Scan Results. Several signatures (obfuscated eval(), create_function(), long base64 blobs) can legitimately appear in caching layers, minified vendor code, or some page builders. If you're confident it's a false positive, click "Ignore" rather than deleting the file. Auto-quarantine of critical findings is off by default for exactly this reason.
Not in real time — no WordPress plugin can intercept a file write at the PHP-engine level; that requires a hosting-level security layer. What it does is control cron scheduling (block a hook so WordPress refuses to re-run it) and detect file changes that happened around the same time as a suspicious cron run, so you can act quickly.
Yes. XML-RPC authentication goes through the same core wp_authenticate() function as the normal login form, so the same failed-attempt counter and lockout apply to both.
The query-string pattern check always exempts logged-in administrators, specifically so normal plugin/editor use can never trigger a self-lockout. Only unauthenticated requests are checked against the SQLi/path-traversal/PHP-injection patterns.
No. The only outbound request the plugin makes is to WordPress.org's own official checksums API, and only your WordPress version + locale are sent (see "External services" above). Everything else — scanning, hashing, cron auditing, login tracking — runs entirely on your own server.
Nothing is left on disk. Quarantining a file reads its content into the database (base64-encoded, in the plugin's own scan_results table) and deletes the original — the file is gone from the filesystem the moment it's quarantined, not just hidden behind a protected folder. Uninstalling the plugin removes that table along with everything else, so if you want to keep a quarantined file's content for forensics, restore or export it before uninstalling.
Use the plugin's support forum on WordPress.org, or email herry@hanuitsolutions.com.
phpcs:ignore comment sat on the wrong physical line of a multi-line prepare() call and so wasn't actually suppressing anything. %i requires WordPress 6.2+, so the minimum supported version is now 6.2 (previously 6.0).phpcs:ignore on the file-editor's $_POST['file'] read, and added a missing phpcs:ignore (with rationale) to the read-only $_GET check behind the settings-saved admin notice.