Guide to installing and using the free 007AJ Security Scanner & Firewall plugin for WordPress (version 0.1.2).
Requirements: WordPress 6.3 or newer and PHP 7.4 or newer.
007aj-security-scanner-firewall zip. You can also upload the 007aj-security-scanner-firewall folder to /wp-content/plugins/.Every feature is off after activation. On 007AJ Security → Settings you can turn on, one by one: login lockout, the firewall (with its XML-RPC switch and login rate limit), the hardening switches and the activity log. The screen also shows the IP address the server sees for you; see how IP addresses are read.
UNION SELECT, ' OR '1'='1, SLEEP(), script injection (<script>, event handlers, javascript: links) and path traversal (../, /etc/passwd, php://). Matching requests get a 403 page.wp-login.php per IP address (default 20 in 5 minutes); extra requests get a 429 answer.On 007AJ Security → Integrity scan, Run scan now downloads the official checksums for your WordPress version from WordPress.org and compares every core file on your server with them. The result lists:
wp-admin, wp-includes and the site root that are not part of WordPress.The scan only reports. The plugin never changes or deletes files. Plugins, themes and uploads are not scanned. To restore core files, use Dashboard → Updates → Re-install. Scans run only when you click the button; there are no scheduled scans.
DISALLOW_FILE_EDIT unless wp-config.php already sets it).?author=N requests go to the home page, the REST users endpoint answers 401, and the users sitemap is removed.When the activity log is on, it records logins, failed logins, lockouts, firewall blocks, rate-limit hits, blocked username discovery, scans and setting changes, with the time, IP address and username. Only the newest 500 entries are kept. Filter by event, or clear the log with one click.
The Dashboard shows today’s lockouts, failed logins and blocked requests, the last scan result, the hardening switches and the log size.
The plugin reads the visitor address from REMOTE_ADDR only. Forwarded headers such as X-Forwarded-For can be forged by the visitor and are never trusted. If your site is behind a proxy or CDN that does not pass the real visitor address to PHP, every visitor may appear to have the same address, and lockouts or limits would then affect everyone. The Settings screen shows the address the server sees for you; check it before turning on lockouts, limits or blocks. Ask your host to restore the real visitor address at the server level if needed.
Depending on the features you turn on, the plugin stores on your server:
The plugin adds suggested text to Settings → Privacy and registers a personal data exporter and eraser (Tools → Export Personal Data / Erase Personal Data). They find activity log entries by the person’s user ID, username or email address.
The plugin connects to one external service, and only when an administrator asks it to.
| Service | When | What is sent |
|---|---|---|
WordPress.org core checksumshttps://api.wordpress.org/core/checksums/1.0/ | Only when an administrator clicks Run scan now. No automatic or scheduled requests. | Your WordPress version and site language (for example version=7.1&locale=en_US), with the user agent WordPress/<version>. Your site address, users and files are not sent. Your server’s IP address is visible to WordPress.org, as with any web request. |
Provider: WordPress.org — Terms of use, Privacy policy.
No other outbound requests are made and nothing is sent to 007AJ. The plugin row on the Plugins screen and one dismissible notice on the plugin’s Dashboard contain a plain link to this site; nothing is loaded from it and nothing is sent unless you click it.
Wait until the lockout ends, or log in from a different network. With file access (FTP or your host’s file manager) you can rename the plugin folder in wp-content/plugins/ to turn it off. Deactivating the plugin removes all current lockouts.
It skips logged-in administrators and editors, does not look at submitted form values, and only matches obvious attack patterns. If a visitor is blocked by mistake, the activity log shows the rule; you can turn the firewall off in Settings.
No. The integrity scan tells you which WordPress core files were changed, removed or added.
007AJ Security Scanner & Firewall Suite is a separate, standalone plugin. If both are active, this plugin pauses itself and shows a notice; nothing in this plugin is disabled, limited or time-limited otherwise.
Not tested on multisite. Activate it per site.
Email admin@007aj.com. Please include the plugin version (shown under Plugins), your WordPress and PHP versions, and what you expected to happen. Never send passwords.