

Overview: whether the site is safe, what to do next, and what protects it.
shieldwave.io by ensomedia.dev
Ensomedia Security, powered by shieldwave.io, scans your site from the inside and tells you in plain language what is wrong and how to fix it. It is built around one idea: an alert has to be worth your attention. Every check, scan and alert is free, needs no account and has no limits. The screens and alert emails come in 17 languages (see the FAQ).
Live protection (three features, all opt-in):
All three are off until you turn them on (the plugin asks once after activation) and run from WP-Cron once an hour, whether or not a scan is running. See External services.
An optional local firewall, off until you turn it on: attack rules for common injections and executable uploads, IP and country blocks, request limits and narrow exceptions. It sends no request data.
wp shieldwave two-factor disable <user>, so nobody is locked out.One switch each:
A file with a finding of medium severity or higher can be moved into quarantine with one button, and Restore puts it back. The FAQ explains what is never moved.
Each history entry carries a keyed hash that includes the hash of the entry before it, so Check history integrity shows whether an entry was edited or deleted outside ShieldWave. Entries are kept for 7 to 730 days (90 by default) and can be exported as CSV. The plugin adds a suggested text to Settings > Privacy and takes part in the WordPress personal data export and erasure tools.
Press Connect with shieldwave.io under ShieldWave > Settings and the site shows up in your dashboard at shieldwave.io with its score and open issues. Pro (12 USD a month) and Enterprise (29 USD a month) add the outside scan, monitoring and reports, other currencies on shieldwave.io/pricing. The dashboard cannot change anything on the site. See External services.
It is not a full web application firewall and does not clean malware out of files. It can put back the WordPress.org original of a changed core, plugin or theme file; other fixes it explains are yours to make. Ensomedia Security is built by ENSOMEDIA (Radosław Fedorczuk, Wrocław, Poland), which also runs shieldwave.io.
No outside requests are made on activation or when admin pages load, only when a scan runs, when you use the account actions, and once an hour from WP-Cron for the live protection features you turned on and a connected account. Requests to your own site are listed in the FAQ. Requests to WordPress.org and most requests to your own site use the WordPress HTTP API’s default user agent (WordPress version and site address). Requests to ShieldWave send a neutral user agent (ShieldWave-Security and the plugin version) and never your site address in their headers. Each request comes from your server’s IP address.
WordPress.org core checksums (api.wordpress.org/core/checksums/1.0/)
For the “WordPress core files” check. Sent: your WordPress version and package language. Cached for a day.
WordPress.org release list (api.wordpress.org/core/stable-check/1.0/)
Tells the same check which older releases to compare with. Sent: nothing about your site. Cached for a day.
WordPress.org plugin checksums (downloads.wordpress.org/plugin-checksums/)
For the “Plugin files” check. Sent: the folder name and version of each installed plugin. Cached for a week, or for a day when no list was available.
WordPress.org repository (core.svn.wordpress.org, plugins.svn.wordpress.org, themes.svn.wordpress.org)
Only when you press “Replace with the original” on a finding. Sent: the version and path of that one file.
WordPress.org theme packages (downloads.wordpress.org/theme/)
For the “Theme files” check: each directory theme’s release package is downloaded, hashed and deleted. Sent: the theme’s folder name and version. Cached for a week.
WordPress.org plugin information (api.wordpress.org/plugins/info/1.2/)
Used by the “Closed and abandoned plugins” check. Sent: the folder name of each installed plugin. Cached for a day.
WordPress.org theme information (api.wordpress.org/themes/info/1.2/)
Tells the “Theme files” check which installed themes come from the directory. Sent: the folder name of each installed theme. Cached for a day.
All seven are provided by WordPress.org: privacy policy.
ShieldWave vulnerability lookup (shieldwave.io, endpoint /api/plugin/vulnerabilities), off until you turn it on
For the “Known vulnerabilities” check. Sent: your WordPress version and the folder name and version of each installed plugin and theme, premium ones included. A premium plugin’s product name is compared on your site, never sent. No site address, no account, no personal data. The data comes from Wordfence Intelligence, and each result links to its record with its copyright notice; links go only to Wordfence, NVD, CVE.org, WPScan, Patchstack, shieldwave.io, WordPress.org and the GitHub advisory database. Runs with the scan and WP-Cron; cached 3 hours, source data refreshed every 6 hours.
ShieldWave threat feed (shieldwave.io, endpoints /api/plugin/intel and /api/plugin/intel/head), off until you turn it on
For the “Live threat feed” option and virtual patches. The plugin downloads a signed file of extra malware rules, file signatures and virtual patch rules once an hour from WP-Cron and verifies its signature before use. It checks every 15 minutes and can switch off parts of this plugin on a flawed version until updated. Sent: nothing about your site; only the plugin version, which every request carries.
ShieldWave AI second opinion (shieldwave.io, endpoint /api/plugin/ai/review), off until you turn it on
For a file the local rules cannot judge. Sent: an excerpt of up to 6,000 characters around the suspicious code; the file’s SHA-256 and MD5 fingerprints and size; its kind and where it sits (plugin or theme folder name, uploads and so on); the local verdict and the matched rule identifiers; the site language, the plugin version and a salted hash of the site. Removed before sending: your site address, email addresses, IPv4 and IPv6 addresses, the server paths of WordPress and of home folders (replaced by a neutral path), every DB_ constant and the arguments of database connections, values named like a password, key, salt, secret or token (from 6 characters) and long random tokens. Other web addresses stay. Never read: wp-config*, .env*, .htpasswd, .user.ini, php.ini, auth.json, backup copies (.bak, .old, .orig, .save, .swp, names ending in ~), .sql dumps, logs and .ini files. If the redaction fails, nothing is sent. shieldwave.io passes the excerpt to an AI provider of shieldwave.io, described in the ShieldWave privacy policy; the verdict is kept by the file’s fingerprint and shared across sites. Runs after a scan and once an hour from WP-Cron.
Link to the outside check (shieldwave.io)
The Overview links to the free outside check. Nothing is sent until you click; then your browser opens shieldwave.io/?check=yourdomain.com. Links to shieldwave.io carry utm_source=wordpress, utm_medium=plugin and utm_campaign=(the screen).
ShieldWave account (shieldwave.io), only after an administrator connects the site under ShieldWave > Settings
Have I Been Pwned, Pwned Passwords (api.pwnedpasswords.com/range/), off until you turn it on
On new passwords and weekly at sign-in. Sent: the first 5 characters of the password’s SHA-1 hash. Privacy policy.
Cloudflare (challenges.cloudflare.com, api.cloudflare.com), only with your keys or token
Turnstile: login forms load its script; answers go with your secret key to /turnstile/v0/siteverify. Edge rules: your token, host name and rules. Terms and privacy policy.
The data above is processed by shieldwave.io, run by ENSOMEDIA in Poland, and for the AI second opinion by an AI provider of shieldwave.io. ShieldWave terms of service and privacy policy.