Linux 软件免费装
Banner图

Beziworld - Activity Log

开发者 beziworld
更新时间 2026年11月7日 20:58
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

security activity log audit log gdpr siem

下载

1.1.0 1.2.0 1.2.1 0.5.1 1.0.0

详情介绍:

Beziworld - Activity Log records what users do on your WordPress site: who logged in, who failed to log in, who changed a role, who edited their profile, who created or edited content, and more. The focus is user activity, and the goal is to make the capabilities competing plugins reserve for paid upgrades available for free. Designed for performance. Events are stored in a dedicated, indexed custom table (never in wp_posts), written in batches to keep request overhead low, while security-relevant events are persisted immediately. Retention pruning keeps the table lean automatically. Designed for trust. Each event is signed with a per-site HMAC and sealed into a hash-chained sequence of checkpoints, making after-the-fact tampering, including row insertion or deletion, detectable. Because an attacker with full server access could recompute local signatures, the latest checkpoint signature can be anchored off-host (emailed or sent to a webhook) so the integrity proof leaves the machine. Designed for privacy. IP logging is optional and can be anonymised at capture time. The log takes part in Tools > Export Personal Data and Tools > Erase Personal Data, and the plugin suggests a privacy policy paragraph. It never phones home and never loads code from external servers. Designed for your security stack. New events can be streamed as signed JSON Lines or syslog-compatible JSON to any HTTPS endpoint that accepts newline-delimited JSON, typically a collector such as Vector, Fluent Bit or Logstash that forwards to Elastic, Splunk, Loki or Datadog, with retries that never lose an event. Highlights

安装:

  1. Upload the beziworld-activity-log folder to /wp-content/plugins/.
  2. Activate the plugin through the Plugins screen in WordPress.
  3. Open Activity Log in the admin menu to review events, and Activity Log → Settings to configure retention, events and exclusions.

屏幕截图:

  • Statistics: headline figures, a daily-volume chart and a per-category breakdown.
  • Settings: enable or disable whole groups or individual events and override their severity.
  • Notifications, scheduled reports, integrity anchoring and anomaly detection.
  • Log stream: send every new event to a SIEM or log collector, with signing secret and delivery status.
  • Users online: who currently holds a session, with their most recent action, time and IP.

升级注意事项:

1.2.1 The bundled translations now load on older WordPress versions as well. 1.2.0 Quick date ranges, user suggestions, new events for the file editor, Customizer, exports and auto-updates, and an optional new-IP login alert for administrators. 1.1.0 A redesigned admin interface, notification tests and delivery status, and correct date filters in your timezone. No changes to your events or settings. 1.0.0 Adds the log stream (SIEM export), JSON Lines export and GDPR export and erasure, and fixes integrity verification after retention and multisite storage. The database upgrade runs automatically on the next admin page load and keeps all existing events. 0.6.0 Adds an optional About the author screen and the new plugin name. No changes to your data or settings. 0.5.1 Security and coding-standards hardening for the WordPress.org Plugin Directory. No functional or behavioural changes. 0.5.0 Major feature release: notifications, reports, statistics, session management, integrity checkpoints, export, REST/GraphQL and integrations.

常见问题:

Where are events stored?

In dedicated custom database tables created on activation, not in the WordPress posts table, so your content queries are never affected.

Will it slow down my site?

Non-critical events are buffered and written in a single batched query on shutdown; security events are written immediately. Indexed columns keep the viewer responsive even on large logs.

Does the plugin detect changes made directly in the database?

No. Like every hook-based activity logger, it records actions that flow through WordPress. Direct SQL modifications bypass WordPress hooks and cannot be observed.

Does it send my data anywhere?

No. There is no tracking or telemetry, and the plugin never loads code from external servers. The only outbound requests are the optional integrations described under "External services" below: every one is off by default and is sent only to an endpoint you configure yourself.

How do I verify the signature of streamed events?

Every request carries X-Bzal-Timestamp (Unix time) and X-Bzal-Signature: sha256=<hex>, where the hex value is HMAC-SHA256 of the timestamp, a dot and the raw request body, keyed with the signing secret shown on the Log stream tab. Recompute it, compare in constant time and reject requests older than a few minutes. Each event line also carries the row's own integrity signature (hmac).

What happens to the log when someone asks to be forgotten?

By default the entries are kept for the retention period as security records, which is usually covered by legitimate interest, and the erasure request reports this to the requester. If you choose to anonymise instead, the user name, IP address, browser details and identifying values are removed from that person's entries. The rows are re-signed and their original signatures kept, so wp bzal verify-integrity still passes, and the anonymisation itself is recorded.

Does retention break integrity verification?

No. Before removing old events the plugin seals them into a checkpoint and records where the chain was cut, so verification covers everything that remains and still detects any other change or deletion.

Does it provide WP-CLI commands?

Yes:

  • wp bzal verify-integrity: verify the per-row signatures and the checkpoint chain, reporting any detected tampering.
  • wp bzal checkpoint: seal a new integrity checkpoint immediately.
  • wp bzal purge: apply the retention policy now.
  • wp bzal stats: print the number of recorded events for the current site.
  • wp bzal stream status|flush|reset [--from=<id>]: inspect the log stream, deliver pending events now, or move the delivery cursor (--from=0 replays the whole log).

Can developers extend it?

Yes. The plugin exposes hooks for integration:

  • do_action( 'bzal_event_logged', array $columns ): fires after each event is stored; receives the event's column map, for forwarding to your own systems.
  • apply_filters( 'bzal_geolocate_country', string $country, string $ip ), return an ISO country code for an IP to power optional login geolocation (no provider is bundled).
  • apply_filters( 'bzal_user_meta_denied', bool $denied, string $meta_key ), return true to keep a specific user-meta key out of the log.
  • do_action( 'bzal_plugin_booted' ): fires once the plugin has finished booting, for registering your own extensions.
  • apply_filters( 'bzal_export_max_rows', int $max_rows ): the maximum number of rows in one CSV, JSON or JSON Lines export (default 100000).
  • do_action( 'bzal_schema_upgraded', string $from ): fires after the plugin's database schema was installed or upgraded on a site.

更新日志:

1.2.1 1.2.0 1.1.0 1.0.0 0.6.0 0.5.1 0.5.0 0.1.0