Real changes since 1.0.0, all live-verified before this release: - Firewall: rule corpus expanded 19 -> 43 rules, real OWASP-CRS-equivalent coverage (XXE, SSRF, session fixation, Log4Shell/JNDI, scanner-tool detection, deeper SQL injection/XSS/PHP-injection). - Fixed a real bug: a quarantined file's severity badge and its content analysis score could disagree with no explanation (e.g. a benign file showing CRITICAL next to Score 0); both are now derived consistently and shown together. - ARGUS now always keeps itself updated, and can optionally do the same for every other installed plugin and theme (Settings, on by default) -- uses WordPress's own native update system, nothing custom. - Global Threat Intelligence is now opt-in, not automatic -- a single click on its own page, with an honest, specific description of exactly what's shared (an IP address, a reason code, a confidence score, a country). Previously connected automatically on activation. - New first-run Welcome screen after activation: confirms what's already protecting the site, and surfaces the few real optional choices in one place. - Dashboard: running version now visible in the header; new "IPs Tracked" and "ANIS Protections" metrics. - Full WordPress.org Plugin Directory readiness audit performed against this codebase. Two real compliance issues found and fixed (see above: Global Threat Intelligence's default, and the self-update mechanism, which is excluded from this build entirely -- WordPress.org prohibits a plugin from using any update channel other than its own, even an inert one). This release is still self-distributed, not a WordPress.org submission -- that remains a future step. Verified before publishing: this exact ZIP was installed, activated (14 admin pages loaded clean, zero PHP errors/warnings), and uninstalled (zero leftover database tables or options) in a fresh, disposable WordPress + MySQL environment. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
47 lines
2.0 KiB
PHP
47 lines
2.0 KiB
PHP
<?php
|
|
/**
|
|
* Plugin Name: ARGUS WordPress Defence
|
|
* Plugin URI: https://git-cloud.weboria.eu/Weboria/argus-wp-defence
|
|
* Description: Standalone WordPress security: local WAF, malware & integrity scanning, vulnerability intelligence, and a deterministic ban/policy engine. Works fully offline; optionally connects to ARGUS Cloud for richer intelligence and cross-asset correlation.
|
|
* Version: 7.23.0
|
|
* Requires at least: 6.0
|
|
* Requires PHP: 7.4
|
|
* Author: ARGUS
|
|
* License: GPL-2.0-or-later
|
|
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
|
* Text Domain: argus-wordpress-defence
|
|
*
|
|
* Architecture reference: argus-appliance/docs/adr/0053-argus-wordpress-defence.md
|
|
*
|
|
* This is the REGULAR plugin entry point -- the admin UI, settings, and
|
|
* anything that doesn't need to run before WordPress core boots lives
|
|
* here. The enforcement core (WAF/ban/policy) is installed separately as
|
|
* a Must-Use plugin (see includes/class-argus-mu-installer.php and
|
|
* mu-loader/argus-mu-core.php) so it keeps running even if this regular
|
|
* plugin is deactivated from wp-admin -- ADR-0053 §13.1's self-protection
|
|
* design. This file still loads the same enforcement classes for the
|
|
* admin UI to read state from, and as the Tier-1 fallback hook
|
|
* (plugins_loaded) on any host where the MU-plugin install failed.
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
define( 'ARGUS_WPD_VERSION', '7.23.0' );
|
|
define( 'ARGUS_WPD_FILE', __FILE__ );
|
|
define( 'ARGUS_WPD_DIR', plugin_dir_path( __FILE__ ) );
|
|
define( 'ARGUS_WPD_URL', plugin_dir_url( __FILE__ ) );
|
|
define( 'ARGUS_WPD_BASENAME', plugin_basename( __FILE__ ) );
|
|
|
|
require_once ARGUS_WPD_DIR . 'includes/class-argus-autoloader.php';
|
|
Argus_Autoloader::register();
|
|
|
|
register_activation_hook( __FILE__, array( 'Argus_Activator', 'activate' ) );
|
|
register_deactivation_hook( __FILE__, array( 'Argus_Deactivator', 'deactivate' ) );
|
|
|
|
function argus_wpd_init() {
|
|
Argus_Plugin::instance()->boot();
|
|
}
|
|
add_action( 'plugins_loaded', 'argus_wpd_init', 0 );
|