Linux 软件免费装
Banner图

Ensomedia Security powered by shieldwave.io

开发者 shieldwave
更新时间 2026年10月22日 22:28
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

security malware scanner hardening vulnerability scanner file integrity

下载

1.0.2 1.1.21 1.1.19 1.1.3 1.0.3 1.1.8 1.1.1 1.1.12 1.0.0 1.1.13 1.1.17 1.1.4 1.1.5 1.1.7 1.0.1 1.1.20 1.1.23 1.1.18 1.1.9 1.1.24 1.1.0 1.1.25 1.1.6 1.1.26 1.1.10 1.1.2 1.1.27 1.1.28

详情介绍:

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). Why owners switch to it The checks 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. Request firewall 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. Login protection Two-factor login, passkeys and sessions Hardening 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. Activity log and privacy 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. ShieldWave dashboard (optional) 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. Every site you connect shows up, on the free plan too. 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. What this plugin does not do 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.

安装:

  1. Install the plugin from Plugins > Add Plugin, or upload the ensomedia-security folder to /wp-content/plugins/.
  2. Activate it.
  3. Open ShieldWave and press Scan now. The first scan records the baseline and usually takes a few minutes; later scans are faster.
  4. Scheduled scans run daily at 03:00 (site time). Change that, the alerts and the options under ShieldWave > Settings.
  5. Answer the offer shown after activation: Turn on protection turns on the vulnerability lookup, the threat feed and virtual patches. You can also do it later under ShieldWave > Settings > Live protection.
  6. Optional: to see the site in the ShieldWave dashboard, press Connect with shieldwave.io under ShieldWave > Settings > ShieldWave account.

屏幕截图:

  • A problem opened: what was found, how to fix it, and a button to the right WordPress screen.
  • Signs of a break-in: what to do now, and the file, rule and code that matched.
  • A scan running in the background.
  • History: every scan and every change that matters, in plain sentences.
  • Settings: automatic scans, email alerts, extra checks and the optional ShieldWave account.
  • The optional ShieldWave account: connect the site to shieldwave.io with one click, or with an API key.

升级注意事项:

1.1.28 Fixes the WP-CLI rescue commands for the login settings and improves the translations. 1.1.27 Optional passwordless passkey sign-in, bot check, breached-password check, custom login address and spam traps (all off until you turn them on), a fuller activity log and a backup check. 1.1.26 Adds an optional local request firewall, off until you turn it on. Start with Record only. 1.1.25 Asks once whether to turn on live protection, and adds a cleanup of injected code that you approve change by change and can undo. 1.1.24 Checks your PHP version against the php2shell fix (PHP released it on 2026-10-21). High severity: it asks you to check with your host, since hosts often patch without changing the version number. 1.1.23 Fewer false alarms: your own cache plugin's files, the cPanel PHP handler on LiteSpeed and plugin-written wp-config settings are no longer high. Advice no longer says to delete what you cannot identify. 1.1.21 Reads every site option, Code Snippets and account data for hidden code, finds hidden administrators, checks what Googlebot and search visitors get, and can put back the WordPress.org original of a changed file. 1.1.20 Fixes two false reports: PHP printing errors on pages when display_errors is off for the site folder, and a changed .htaccess after WordPress rewrote only its own block. 1.1.19 Decoys (off by default) and detection of fake CAPTCHA, fake browser update, EtherHiding and card skimmer scripts in files and stored content. 1.1.18 Virtual patches and security updates (both off by default), no open_basedir warning in wp-admin, unused plugins and themes counted as one finding each, and no false file changes after an update by ZIP. 1.1.17 The score follows the same severity bands as shieldwave.io, and file-dropper backdoors are detected. 1.1.16 One score everywhere, vulnerabilities rated by the access they need, one finding per cause, and no judgements of the web server from WP-CLI or from a failed request of the server to itself. 1.1.15 Fewer false findings and one score: what could not be verified is a note, downloads are proven by their bytes, vulnerabilities are rated by the access they need, and one cause gives one finding. 1.1.14 Fewer false findings: vendor builds such as ACF from WP Engine are verified, copied SVN folders and missing files no longer flood the list, active code snippets are not PHP in content, and severities follow what someone could do on the site now. 1.1.13 No more false alarms after an update: file changes close again, fresh files keep their official mark, guarded admin code is not malware, draft snippets and bundled libraries are quiet. The headline says when the site needs tidying. 1.1.12 Adds quarantine with restore, PHP blocking in uploads, security headers, required two-factor for roles, passkeys and sessions. Each is off until you turn it on or press its button. Hardens two-factor set-up and re-authentication. On multisite, network activate the plugin. 1.1.10 Closes every finding of the security audit of 1.1.9: detection gaps, login protection, two-factor, privacy and robustness. Adds an activity log with hashes and privacy tools, and sends less to the AI second opinion. 1.1.9 Delete unused plugins from their finding, and eight fewer false alarms (old WordPress files, premium plugins, debug.log, HTTPS, TranslatePress). 1.1.8 Fixes a scan error on hosting whose PHP has no tokenizer extension. 1.1.7 Findings say which plugin, theme or folder a file is in and what to do there. An old ShieldWave copy is no longer reported as malware. 1.1.6 Fixes the screens on a multisite network and stops two old WordPress records from being reported as vulnerabilities. 1.1.3 Plain images in uploads are no longer reported as PHP files. Run a scan after updating to clear the old findings. 1.1.2 The screens keep the size of the WordPress admin on large monitors instead of being enlarged. 1.1.1 The automatic scan keeps the hour you chose when the clocks change or you switch the time zone. Update before the clocks change. 1.1.0 Connect with shieldwave.io in one click, one free site in the dashboard, and a safe way to remove the old ShieldWave Security. 1.0.3 A clearer Overview, the look of shieldwave.io, and screens that fit large monitors and phones. 1.0.2 Alert emails now display correctly in Outlook on Windows, in light and dark mode. 1.0.1 The plugin now speaks 16 languages besides English, including Arabic with a right-to-left layout. 1.0.0 First release in the WordPress.org directory.

常见问题:

How does the request firewall load, and how do I undo a block?

A must-use loader checks requests before normal plugins load. The optional Load before WordPress setting adds a marked entry to .user.ini on PHP CGI/FastCGI hosts and refuses to replace another auto_prepend_file; the firewall screen shows whether early loading ran. Named password fields and authentication headers are not inspected. History stays on your site for up to 30 days and records metadata, not query strings or submitted values. Reducing protection, adding an exception, clearing history or lifting a block asks for your password or an authenticator code. If the firewall blocks you, replace wp-content/ensomedia-security-firewall.php with an empty PHP file and remove only the marked .user.ini entry, and keep the empty file until PHP's configuration cache expires. Without early loading, define SHIELDWAVE_FIREWALL_OFF in wp-config.php to turn the loader off. The firewall adds protection; it does not replace updates or fix vulnerable code. Its rules ship with plugin updates and are separate from the virtual patches and the malware feed.

Do I need a ShieldWave account?

No. All 25 checks, scheduled scans, email alerts and the vulnerability lookup work without one, with no limits.

Can I hide ShieldWave from the toolbar?

Yes. Under ShieldWave > Settings > Toolbar, turn off "Show ShieldWave in the toolbar". The choice is per administrator. Visitors never see it.

How is this different from other security scanners?

It trusts the files WordPress.org can vouch for, needs real evidence before it calls something malware, and emails only about problems that are new or got worse. The goal is that every alert you get is one you would want.

What does "Ask your developer to check" mean?

The scanner found something unusual that is often harmless: for example a new PHP file in a premium plugin without an update. It is listed so someone who knows the site can look at it, and it never sends an email on its own. Problems under "Fix now" are the ones with clear evidence.

A finding is about a file I changed on purpose.

Open the item and press "Ignore". It stays out of the score and the alerts, and an ignored file comes back by itself if it changes again. Ignored items stay under the "Ignored" link below the to-do list, where "Restore" brings one back.

What does the History record about the people on my site?

Scans and settings, and also sign-ins, new and deleted accounts, role changes, who edited, published or trashed a post or page, plugin and theme installs, updates, switches and removals, and changes to the site addresses, the administration email, "Anyone can register" and the new user role. A post is named by its title and number, never its text. Sign-ins and edits are written once per person in a short window, at most 300 a day together. The History screen filters by type and person, and the CSV export holds every entry.

Does ShieldWave make backups?

No. The Backups check looks for a switched-on backup plugin, a few hosts that back up themselves and archives in the usual folders, and reads the date of the last backup from their settings and files without running them. It says so when the newest backup is older than 7 days. When it cannot read a date, it marks the check as not assessed and does not raise an alarm.

Will it slow my site down?

No. Scans never run while a visitor's page loads: they work in the background in steps of a few seconds, and later scans skip files that were clean and did not change. On a busy shared host you can choose the low scan speed in Settings.

What happens to the scheduled scan when the clocks change?

It stays on the hour you chose, in the time zone set under Settings > General, and it follows a change of that time zone at once. On the one day a year the clocks skip the chosen hour, the scan runs right after the skipped hour. On the day an hour happens twice, it runs once, the first time the clock shows it.

Which outside requests does it make?

Only when scans run: to WordPress.org for checksums, theme packages, plugin information and the list of WordPress releases, and to your own site. With the vulnerability lookup, live threat feed or AI second opinion on: to shieldwave.io, once an hour from WP-Cron and after scans. With an account connected: to shieldwave.io, also once an hour. With the breached password check: to api.pwnedpasswords.com. With Cloudflare Turnstile: to challenges.cloudflare.com. Each of those is off until you turn it on, and the External services section below lists exactly what is sent. Requests to your own site: the XML-RPC, debug output and exposed files checks request xmlrpc.php, the debug.log URL, backup files found on disk and the uploads folder; the HTTPS check asks for the home page over http and https and the security headers check once over https. "Check now" for PHP in uploads writes two harmless test files there, requests them and deletes them. After a file is moved to quarantine or replaced with its original, or after a security update, the plugin requests the home page and the login page to see that the site still answers. The check of what visitors and search engines see requests the home page and the WooCommerce checkout with a browser user agent, as Googlebot and with a Google search referrer. A running scan calls your own admin-ajax.php to continue in the background.

Why does the plugin register a public AJAX action?

The AJAX action shieldwave_worker lets a running scan continue in the background; it does nothing without the random token of the running scan. The plugin's REST routes answer administrators only.

My headless front end reads authors from the REST API.

With login protection on, the REST API user list answers only logged-in requests, so an anonymous request for an author gets an error. To keep the list public, add add_filter( 'shieldwave_hide_user_list', '__return_false' ); to a small plugin or to your theme's functions.php. The same filter also brings back the author fields in embeds and the users sitemap.

Does it work on multisite?

Yes, network-wide. It is activated for the whole network (Network Activate): two-factor login and login protection need that, because one sign-in works on every site. Scanning, the schedule, alerts, the settings screens and the optional ShieldWave account all live on the main site, in the Network Admin, for network administrators only. Every other site of the network enforces the same choice made there: when login protection, two-factor or a hardening switch is on, it is on for that site too, with no separate settings screen to set up. A lockout after failed logins is shared by the whole network, not counted per site, so an address cannot dodge the limit by trying a different site.

Does it work without WP-Cron?

Yes. If WP-Cron is disabled or loopback requests are blocked, scans still run while the ShieldWave screen is open, and scheduled scans run whenever your server cron calls wp-cron.php.

How is the score calculated?

It starts at 100. For each check, the most serious open issue takes off points: critical 30, high 15, medium 8, low 3. The most serious issue on the site then sets the range, as in the outside scan on shieldwave.io: 0-39 with a critical issue, 40-59 with a high one, 60-100 with neither. Ignored issues, hints and checks that could not run take nothing off.

Which languages does it speak?

English, Arabic, Chinese (Simplified), Dutch, French, German, Indonesian, Italian, Japanese, Korean, Polish, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish and Vietnamese. The screens, the login protection and the alert emails follow the language of your WordPress admin, and Arabic gets a right-to-left layout. Regional variants such as Spanish (Mexico), German (Switzerland) or French (Canada) use the main language. For these languages the plugin's own translation is used, and a translate.wordpress.org pack fills only what it lacks; other languages use the pack from translate.wordpress.org once one is complete.

The old ShieldWave Security from shieldwave.io is installed too.

Builds downloaded from shieldwave.io before the directory listing were called ShieldWave Security, numbered up to 3.6.6, and live in the folder shieldwave-security. They cannot update themselves to this plugin. Keep Ensomedia Security active, deactivate ShieldWave Security, then delete it on the Plugins screen: the settings, results and two-factor set-ups carry over, because Ensomedia Security keeps them while the old copy's clean-up runs. The Plugins screen shows a notice while an old copy is installed.

What does quarantine do, and can I undo it?

A finding of medium severity or higher about one file can move that file into quarantine. The file is stored encoded, so it cannot run, in a folder the web server refuses. wp-config.php, the main .htaccess, WordPress's own files and files the site loads on every request are never moved, and if the site stops working after a move, the file goes back. Nothing is moved unless you press the button. Restore puts back the same bytes, with their date and permissions, where the file was. Quarantined files are kept in a folder inside wp-content that is removed, with the files the plugin put there, when the plugin is deleted, so restore what you want to keep before you delete the plugin.

What do the sign-in checks do, and how do I get back in?

All of them are under ShieldWave > Settings > Sign-in checks and Spam traps, and all are off until you turn them on.

  • Sign in with a passkey, without a password. The login page gets a button. The passkey checks your fingerprint, face or device PIN, so it stands for both the password and the code. Needs passkeys on, and a passkey your device keeps for the site; one added only as a second step may need adding again. Your password keeps working.
  • Bot check. The browser solves a small puzzle (a proof of work) before the login, registration or reset form is sent. It needs JavaScript and sends nothing anywhere. Cloudflare Turnstile is the other choice, with the keys of your own Cloudflare account. Record only writes to History what Block would stop. Trusted addresses are never checked, and if Cloudflare cannot be reached the form goes through. To turn it off without the dashboard, add define( 'SHIELDWAVE_BOT_CHECK_OFF', true ); to wp-config.php or run wp shieldwave bot-check off.
  • Breached passwords. A new password is refused if the Pwned Passwords service of Have I Been Pwned knows it. Only the first 5 characters of its SHA-1 hash are sent. At sign-in an account with such a password is asked to change it, never blocked. If the service does not answer, the password is accepted.
  • Hidden login address. The login page moves to an address you choose and wp-login.php shows "not found". This hides the login page, it does not secure it: login protection and two-factor login still do that. The new address is emailed to you when you set it. If you lose it, add define( 'SHIELDWAVE_LOGIN_URL_OFF', true ); to wp-config.php or run wp shieldwave login-url off, and the login page is back at wp-login.php. Not available on multisite or beside another plugin that moves the login page.
  • Spam traps. Comments, registration, Contact Form 7 and WPForms get a hidden field and a signed time stamp. A form filled in by a program, or sent within 3 seconds, is caught. With Block, a caught comment goes to the Spam folder, where you can approve it. Signed-in visitors and trusted addresses are never checked. Clear the page cache once after turning it on.

What does the plugin store about logins?

When logins are paused after too many failed attempts, the plugin records the IP address and the typed user name (the name only when the account exists). After a successful login it sets a cookie whose name starts with shieldwave_kd_. It holds only a random identifier, lets that browser keep signing in while someone else guesses the password for the same account, expires after 90 days and stops working when the password changes.

What happens to my data when I delete the plugin?

The plugin removes its settings, results, tables, scheduled tasks, user settings, two-factor and passkey data, the quarantine folder and its block in the uploads .htaccess file. If the site is connected to shieldwave.io, it first asks shieldwave.io to remove the site and its results.

What does connecting to shieldwave.io do?

It shows the site in your shieldwave.io dashboard with its score and open problems, next to the outside scan of shieldwave.io, and confirms that the domain is yours, which the full outside scan needs. Every site you connect shows up, on the free plan too. Everything in the plugin works the same without it.

I think a finding is wrong.

Open a topic in this plugin's support forum with the check name and what you see. False positives are treated as bugs.

My site was hacked. Can someone clean it?

When the plugin finds signs of a break-in, the Overview links to an order form for a one-time cleanup by ENSOMEDIA, the maker of this plugin, at shieldwave.io/cleanup, and the link sends nothing from your site.

How do I report a security problem in the plugin?

Follow https://shieldwave.io/legal/en/vulnerability-disclosure?utm_source=wordpress&utm_medium=plugin&utm_campaign=readme. Please do not post it in the public support forum.

Which fonts does the plugin use?

The admin screens use the Inter typeface by The Inter Project Authors, licensed under the SIL Open Font License 1.1 (assets/fonts/inter-license.txt). It is loaded from the plugin itself, only on the ShieldWave screens.

更新日志:

1.1.28 1.1.27 1.1.26 1.1.25 1.1.24 1.1.23 1.1.21 1.1.20 1.1.19 1.1.18 1.1.17 1.1.16