| 开发者 | beziworld |
|---|---|
| 更新时间 | 2026年11月7日 20:58 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
wp bzal verify-integrity).beziworld-activity-log folder to /wp-content/plugins/.In dedicated custom database tables created on activation, not in the WordPress posts table, so your content queries are never affected.
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.
No. Like every hook-based activity logger, it records actions that flow through WordPress. Direct SQL modifications bypass WordPress hooks and cannot be observed.
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.
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).
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.
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.
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).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.wp bzal stream.load_plugin_textdomain() call; bundled Polish, German and Czech translations load through WordPress just-in-time loading (the Text Domain and Domain Path headers are declared).wp bzal verify-integrity; per-site partitioned on multisite networks.