Linux 软件免费装
Banner图

P-ivo File Integrity Monitor

开发者 pluginivo
更新时间 2026年11月13日 00:24
PHP版本: 8.0 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

security alerts file integrity file monitor change detection

下载

1.0.0 1.0.1

详情介绍:

P-ivo File Integrity Monitor monitors the integrity of WordPress core, plugin, theme, mu-plugin, and wp-content drop-in (advanced-cache.php, object-cache.php, db.php...) files, and sends an email alert after the next scan detects that one of them has been changed, added, or deleted WITHOUT the change going through an official WP update mechanism. This is often the earliest sign that a site has been compromised (malware injection, backdoor, defacement). It reports file changes. It does not scan file contents for malware signatures, and it does not clean or repair anything. How it works The dashboard External services P-ivo File Integrity Monitor does not connect to any external service, load remote assets, or send data outside your site. Email alerts are sent through your site's own mail configuration (wp_mail). Credits The admin screens use the IBM Plex fonts (Plex Sans, Plex Serif and Plex Mono), Copyright © 2017 IBM Corp. with Reserved Font Name "Plex", bundled with the plugin (nothing is loaded from a remote server) and licensed under the SIL Open Font License, Version 1.1. The license text is included in the plugin at admin/assets/fonts/OFL.txt. A separate version A separate version, distributed outside WordPress.org, adds an independent check of core files.

安装:

  1. Upload the p-ivo-file-integrity-monitor folder to /wp-content/plugins/ (or install through Plugins > Add New > Upload Plugin if you have a .zip).
  2. Activate the plugin through the Plugins menu in the WordPress admin.
  3. The initial baseline is built in the background, batch by batch via WP-Cron, and doesn't block activation. How long it takes depends on the number of files on your site and on how often WP-Cron runs (on low-traffic sites it only runs when someone visits): from under a minute on small sites to considerably longer on large ones.
  4. Open File Integrity > Settings and configure the scan interval, email recipients, excluded paths, and other options as needed.
  5. Watch the File Integrity > Log page, or wait for an email alert if something changes.
Recommendation for production sites WP-Cron by default only runs when someone visits the site (pseudo-cron), which can cause delays on low-traffic sites — the scan interval you choose is a minimum, not an exact schedule. For more reliable, precisely scheduled scanning, especially with the short 15 and 30 minute intervals, it's recommended to disable WP-Cron (define('DISABLE_WP_CRON', true); in wp-config.php) and schedule a real system cron job that calls wp-cron.php at regular intervals.

屏幕截图:

  • Dashboard in a clean state, with no unresolved changes.
  • Settings, grouped into Scan Schedule, Notifications, and Exclusions & Data.
  • Example of an email alert about detected changes.

升级注意事项:

1.0.1 Recommended for servers where PHP cannot read every folder or uses open_basedir: a scan could stop at the first unreadable folder. 1.0.0 Initial release.

常见问题:

How often does it scan?

As often as you choose in Settings > Scan interval: every 15 minutes, every 30 minutes, hourly, twice daily, or once daily. The default is once a day at 03:00 (site time). Automatic scans run through WP-Cron (see the recommendation above). You can also start a scan yourself at any time with "Scan now"; there is no limit on how often.

What happens if I close the page in the middle of "Scan now"?

A manual scan is driven by the open dashboard page, one batch at a time. If you close or leave the page before it finishes, the scan stops where it was; nothing is lost. For about a minute and a half afterwards "Scan now" stays disabled while the plugin waits to see whether a scan is still running. After that you can click "Scan now" again to continue from where it stopped, or let the next automatic scan continue it. Your browser asks for confirmation before leaving a page while a scan is running. For the quickest result, keep the page open until the scan finishes and the page reloads ("Scan complete.").

Will the plugin notify me for every legitimate change I make through WP admin?

No. Updates to plugins, themes, and core made through WP admin (or WP-CLI, or automatic background updates) are recognized via WordPress's own upgrader hook, and the baseline is automatically refreshed for those files. You'll only get an alert for changes that did NOT go through that mechanism. The exception is single-file plugins (a lone .php file directly in the plugins folder, such as hello.php), which the update tracker doesn't cover; an update to one of those will show up as a change.

Why don't I get an email right away when something changes?

Alerts are sent after a scan detects the change, so an alert can arrive up to one scan interval after the change (with the default of one scan a day, up to a day; start "Scan now" to check sooner). On top of that there is the cooldown period (configurable in settings, in minutes, 15 by default) that prevents dozens of changes at once from triggering dozens of separate emails. All unresolved changes from that period are sent in a single batched email. Setting the cooldown below your scan interval means you may get an email after every scan; setting it above groups changes from multiple scans into fewer emails, at the cost of a delayed alert.

Can I notify multiple people by email?

Yes. Add as many recipients as you like in Settings > Email recipients, one address per line.

Can I turn email notifications off?

Yes. Leave the Email recipients field empty and save. No emails are sent; changes appear only in the dashboard (File Integrity > Log) and stay in the New status.

What do the statuses mean?

New: detected and not yet reviewed. Notified: an alert email has been sent, still not reviewed. Acknowledged: you chose "Mark as reviewed" — the file remains different from the baseline and stays listed here, but no new alert is sent unless its contents change again. Accepted: you chose "Accept as correct" — the baseline now matches the file. Accepted events can later be removed with "Delete accepted events".

Why do I see a notice on the Dashboard?

It appears on the WordPress Dashboard and Plugins screens, for administrators, while changes are waiting for review. Click the X to dismiss it; that is remembered for your user only, and the notice returns only when a newer change is detected.

What happens if I deactivate the plugin?

Cron scheduling is removed, but all tables and data (baseline, change history, settings) remain intact. Reactivating picks up right where it left off.

What happens if I delete the plugin?

By default, nothing is deleted from the database — your data stays even after the plugin is deleted, in case you change your mind. If you want a full cleanup, enable the "Data deletion" option in settings BEFORE deleting the plugin.

Which files does the plugin monitor?

WordPress core (root .php files, wp-admin/, wp-includes/), all installed plugins, mu-plugins, themes, and wp-content top-level drop-in files (advanced-cache.php, object-cache.php, db.php, sunrise.php, and similar). Uploads and cache directories are not monitored (they aren't executable code). If your site keeps its plugins, mu-plugins or themes outside the default locations (WP_PLUGIN_DIR, WPMU_PLUGIN_DIR, a custom theme root), those locations are monitored too.

Can I exclude certain files or folders from monitoring?

Yes, in settings you can enter patterns (one per line) — if a file's path contains any of those strings, the file is skipped. There is no limit on the number of patterns; a few common ones are filled in by default.

Does it work on sites with lots of files (large number of plugins/themes)?

Yes. Scanning runs in batches (configurable number of files per pass, 500 by default) instead of trying to do everything at once.

Are there files the plugin does not monitor?

Yes. Files and folders that the web server user cannot read are skipped, and so are symbolic links that PHP is not allowed to follow (see the open_basedir setting). A folder that is a symbolic link is not entered, so the files inside a plugin or theme folder that is itself a link are not monitored. File names that contain a backslash, and paths longer than 500 characters, are not monitored. Two files whose names differ only in capitalization, accents, a trailing space, or after the 191st character of the path can be mistaken for each other: accepting one of them may leave the other listed as changed.

Does it connect to any external service?

No. P-ivo File Integrity Monitor does not connect to any external service, load remote assets, or send data outside your site. Email alerts are sent through your site's own mail configuration (wp_mail).

更新日志:

1.0.1 1.0.0