Changeset 3737723
- Timestamp:
- 10/10/2026 08:01:09 AM (2 weeks ago)
- Location:
- nhrrob-secure
- Files:
-
- 2 added
- 12 edited
- 1 copied
-
tags/2.2.0 (copied) (copied from nhrrob-secure/trunk )
-
tags/2.2.0/composer.json (modified) (2 diffs)
-
tags/2.2.0/includes/Cli/Commands.php (modified) (1 diff)
-
tags/2.2.0/includes/Core/Abilities.php (added)
-
tags/2.2.0/includes/Core/Bootstrap.php (modified) (1 diff)
-
tags/2.2.0/nhrrob-secure.php (modified) (2 diffs)
-
tags/2.2.0/readme.txt (modified) (5 diffs)
-
tags/2.2.0/vendor/composer/installed.php (modified) (2 diffs)
-
trunk/composer.json (modified) (2 diffs)
-
trunk/includes/Cli/Commands.php (modified) (1 diff)
-
trunk/includes/Core/Abilities.php (added)
-
trunk/includes/Core/Bootstrap.php (modified) (1 diff)
-
trunk/nhrrob-secure.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (5 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
nhrrob-secure/tags/2.2.0/composer.json
r3728630 r3737723 31 31 "wp-coding-standards/wpcs": "^3.1", 32 32 "phpcsstandards/phpcsutils": "^1.0", 33 "dealerdirect/phpcodesniffer-composer-installer": "^1.0" 33 "dealerdirect/phpcodesniffer-composer-installer": "^1.0", 34 "phpcompatibility/phpcompatibility-wp": "^3.0@alpha", 35 "phpcompatibility/php-compatibility": "^10.0@alpha", 36 "phpcompatibility/phpcompatibility-paragonie": "^2.0@alpha" 34 37 }, 35 38 "scripts": { … … 43 46 "allow-plugins": { 44 47 "dealerdirect/phpcodesniffer-composer-installer": true 48 }, 49 "platform": { 50 "php": "7.4.33" 45 51 } 46 52 } -
nhrrob-secure/tags/2.2.0/includes/Cli/Commands.php
r3728630 r3737723 26 26 * Show the score, the failed checks and what is switched on. 27 27 * 28 * ## OPTIONS 29 * 30 * [--format=<format>] 31 * : json prints the same facts as one JSON object. Default is plain lines. 32 * 28 33 * ## EXAMPLES 29 34 * 30 35 * wp nhrrob-secure status 36 * wp nhrrob-secure status --format=json 31 37 * 38 * @param array $args Positional arguments. 39 * @param array $assoc_args Flags. 32 40 * @return void 33 41 */ 34 public function status( ) {42 public function status( $args = [], $assoc_args = [] ) { 35 43 $checks = Checks::run(); 44 if ( isset( $assoc_args['format'] ) && 'json' === $assoc_args['format'] ) { 45 \WP_CLI::line( 46 (string) wp_json_encode( 47 [ 48 'score' => Checks::score( $checks ), 49 'safe_mode' => Settings::safe_mode(), 50 'login_address' => LoginUrl::active() ? LoginUrl::url() : 'wp-login.php', 51 'request_filter' => Settings::get( 'request_filter' ), 52 'locked_out' => count( LoginGuard::locked() ), 53 'failed_checks' => array_values( 54 array_filter( 55 $checks, 56 function ( $check ) { 57 return ! $check['passed']; 58 } 59 ) 60 ), 61 ] 62 ) 63 ); 64 return; 65 } 36 66 \WP_CLI::line( sprintf( 'Score: %d / 100', Checks::score( $checks ) ) ); 37 67 \WP_CLI::line( 'Safe mode: ' . ( Settings::safe_mode() ? 'on' : 'off' ) ); -
nhrrob-secure/tags/2.2.0/includes/Core/Bootstrap.php
r3729213 r3737723 75 75 ( new Monitor() )->hooks(); 76 76 ( new Passwords() )->hooks(); 77 // Read-only abilities for AI agents and MCP clients (WordPress 6.9+; inert before). 78 ( new Abilities() )->hooks(); 77 79 78 80 add_action( Vulnerabilities::CRON, [ Vulnerabilities::class, 'cron' ] ); -
nhrrob-secure/tags/2.2.0/nhrrob-secure.php
r3729213 r3737723 6 6 * Author: Nazmul Hasan Robin 7 7 * Author URI: https://profiles.wordpress.org/nhrrob/ 8 * Version: 2. 1.08 * Version: 2.2.0 9 9 * Requires at least: 6.0 10 10 * Requires PHP: 7.4 … … 32 32 * @var string 33 33 */ 34 const version = '2. 1.0'; // phpcs:ignore Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase -- nhrrob plugin standard.34 const version = '2.2.0'; // phpcs:ignore Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase -- nhrrob plugin standard. 35 35 36 36 /** -
nhrrob-secure/tags/2.2.0/readme.txt
r3729213 r3737723 5 5 Tested up to: 7.1 6 6 Requires PHP: 7.4 7 Stable tag: 2. 1.07 Stable tag: 2.2.0 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 87 87 * No database tables. Everything is stored in a handful of capped options. 88 88 * No visitor is looked up with an outside service. 89 * Settings can be exported and imported. WP-CLI commands are included. 89 * Settings can be exported and imported. WP-CLI commands are included (`wp nhrrob-secure status --format=json` for scripts). 90 * AI agent and MCP ready, read-only: on WordPress 6.9 and later, AI agents and MCP clients (through the WordPress MCP Adapter) can read the security score, the checks and the known vulnerabilities. Administrators only. No ability changes a setting. 90 91 91 92 = What it is not = … … 150 151 151 152 Put the `[nhrrob_secure_2fa]` shortcode on any page. With WooCommerce it also appears under My account → Account details. 153 154 = Can an AI agent or MCP client use this plugin? = 155 156 Only to read, on WordPress 6.9 or later. The plugin registers two abilities with the WordPress Abilities API: `nhrrob-secure/get-security-status` (score, checks, counts) and `nhrrob-secure/list-vulnerabilities` (the last vulnerability check). Both need an administrator. An agent cannot change a setting, unlock an address or touch a file, and it is never given the login address, your address rules, usernames, visitor addresses or the activity log. To use the abilities over MCP, install the WordPress MCP Adapter plugin; this plugin does not bundle it. 157 158 = Which PHP versions are supported? = 159 160 PHP 7.4 and every later version. Each change is tested on PHP 7.4 through 8.5, and on the upcoming 8.6. 152 161 153 162 = Does the plugin create database tables? = … … 200 209 201 210 == Changelog == 211 212 = 2.2.0 - 10/10/2026 = 213 - New: read-only AI agent and MCP support. On WordPress 6.9+ the plugin registers two abilities with the WordPress Abilities API: the security status (score, checks, counts) and the known vulnerabilities. Administrators only; nothing can be changed through them. 214 - New: `wp nhrrob-secure status --format=json`. 215 - Compatibility: verified on PHP 7.4 through 8.5 and on PHP 8.6 release candidates. 216 - Developer: every pull request now runs the PHPCompatibilityWP ruleset plus a syntax check, the unit tests and a runtime smoke test on each supported PHP version. The security probe also covers abilities. 202 217 203 218 = 2.1.0 - 05/10/2026 = … … 319 334 == Upgrade Notice == 320 335 336 = 2.2.0 = 337 Read-only AI agent and MCP support on WordPress 6.9+, a JSON status command for WP-CLI, and verified PHP 7.4 to 8.5 compatibility. No settings change. 338 321 339 = 2.1.0 = 322 340 New protections and tools, all off until you switch them on. Open the Dashboard for the recommended setup. -
nhrrob-secure/tags/2.2.0/vendor/composer/installed.php
r3729213 r3737723 2 2 'root' => array( 3 3 'name' => 'nhrrob/secure', 4 'pretty_version' => 'v2. 1.0',5 'version' => '2. 1.0.0',6 'reference' => ' eecc1b4da298525456bc2ddfe5096cd52e7b2a98',4 'pretty_version' => 'v2.2.0', 5 'version' => '2.2.0.0', 6 'reference' => '3d06174df8b536b5c58bb796b0e7e82228069f5e', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 12 12 'versions' => array( 13 13 'nhrrob/secure' => array( 14 'pretty_version' => 'v2. 1.0',15 'version' => '2. 1.0.0',16 'reference' => ' eecc1b4da298525456bc2ddfe5096cd52e7b2a98',14 'pretty_version' => 'v2.2.0', 15 'version' => '2.2.0.0', 16 'reference' => '3d06174df8b536b5c58bb796b0e7e82228069f5e', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../', -
nhrrob-secure/trunk/composer.json
r3728630 r3737723 31 31 "wp-coding-standards/wpcs": "^3.1", 32 32 "phpcsstandards/phpcsutils": "^1.0", 33 "dealerdirect/phpcodesniffer-composer-installer": "^1.0" 33 "dealerdirect/phpcodesniffer-composer-installer": "^1.0", 34 "phpcompatibility/phpcompatibility-wp": "^3.0@alpha", 35 "phpcompatibility/php-compatibility": "^10.0@alpha", 36 "phpcompatibility/phpcompatibility-paragonie": "^2.0@alpha" 34 37 }, 35 38 "scripts": { … … 43 46 "allow-plugins": { 44 47 "dealerdirect/phpcodesniffer-composer-installer": true 48 }, 49 "platform": { 50 "php": "7.4.33" 45 51 } 46 52 } -
nhrrob-secure/trunk/includes/Cli/Commands.php
r3728630 r3737723 26 26 * Show the score, the failed checks and what is switched on. 27 27 * 28 * ## OPTIONS 29 * 30 * [--format=<format>] 31 * : json prints the same facts as one JSON object. Default is plain lines. 32 * 28 33 * ## EXAMPLES 29 34 * 30 35 * wp nhrrob-secure status 36 * wp nhrrob-secure status --format=json 31 37 * 38 * @param array $args Positional arguments. 39 * @param array $assoc_args Flags. 32 40 * @return void 33 41 */ 34 public function status( ) {42 public function status( $args = [], $assoc_args = [] ) { 35 43 $checks = Checks::run(); 44 if ( isset( $assoc_args['format'] ) && 'json' === $assoc_args['format'] ) { 45 \WP_CLI::line( 46 (string) wp_json_encode( 47 [ 48 'score' => Checks::score( $checks ), 49 'safe_mode' => Settings::safe_mode(), 50 'login_address' => LoginUrl::active() ? LoginUrl::url() : 'wp-login.php', 51 'request_filter' => Settings::get( 'request_filter' ), 52 'locked_out' => count( LoginGuard::locked() ), 53 'failed_checks' => array_values( 54 array_filter( 55 $checks, 56 function ( $check ) { 57 return ! $check['passed']; 58 } 59 ) 60 ), 61 ] 62 ) 63 ); 64 return; 65 } 36 66 \WP_CLI::line( sprintf( 'Score: %d / 100', Checks::score( $checks ) ) ); 37 67 \WP_CLI::line( 'Safe mode: ' . ( Settings::safe_mode() ? 'on' : 'off' ) ); -
nhrrob-secure/trunk/includes/Core/Bootstrap.php
r3729213 r3737723 75 75 ( new Monitor() )->hooks(); 76 76 ( new Passwords() )->hooks(); 77 // Read-only abilities for AI agents and MCP clients (WordPress 6.9+; inert before). 78 ( new Abilities() )->hooks(); 77 79 78 80 add_action( Vulnerabilities::CRON, [ Vulnerabilities::class, 'cron' ] ); -
nhrrob-secure/trunk/nhrrob-secure.php
r3729213 r3737723 6 6 * Author: Nazmul Hasan Robin 7 7 * Author URI: https://profiles.wordpress.org/nhrrob/ 8 * Version: 2. 1.08 * Version: 2.2.0 9 9 * Requires at least: 6.0 10 10 * Requires PHP: 7.4 … … 32 32 * @var string 33 33 */ 34 const version = '2. 1.0'; // phpcs:ignore Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase -- nhrrob plugin standard.34 const version = '2.2.0'; // phpcs:ignore Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase -- nhrrob plugin standard. 35 35 36 36 /** -
nhrrob-secure/trunk/readme.txt
r3729213 r3737723 5 5 Tested up to: 7.1 6 6 Requires PHP: 7.4 7 Stable tag: 2. 1.07 Stable tag: 2.2.0 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 87 87 * No database tables. Everything is stored in a handful of capped options. 88 88 * No visitor is looked up with an outside service. 89 * Settings can be exported and imported. WP-CLI commands are included. 89 * Settings can be exported and imported. WP-CLI commands are included (`wp nhrrob-secure status --format=json` for scripts). 90 * AI agent and MCP ready, read-only: on WordPress 6.9 and later, AI agents and MCP clients (through the WordPress MCP Adapter) can read the security score, the checks and the known vulnerabilities. Administrators only. No ability changes a setting. 90 91 91 92 = What it is not = … … 150 151 151 152 Put the `[nhrrob_secure_2fa]` shortcode on any page. With WooCommerce it also appears under My account → Account details. 153 154 = Can an AI agent or MCP client use this plugin? = 155 156 Only to read, on WordPress 6.9 or later. The plugin registers two abilities with the WordPress Abilities API: `nhrrob-secure/get-security-status` (score, checks, counts) and `nhrrob-secure/list-vulnerabilities` (the last vulnerability check). Both need an administrator. An agent cannot change a setting, unlock an address or touch a file, and it is never given the login address, your address rules, usernames, visitor addresses or the activity log. To use the abilities over MCP, install the WordPress MCP Adapter plugin; this plugin does not bundle it. 157 158 = Which PHP versions are supported? = 159 160 PHP 7.4 and every later version. Each change is tested on PHP 7.4 through 8.5, and on the upcoming 8.6. 152 161 153 162 = Does the plugin create database tables? = … … 200 209 201 210 == Changelog == 211 212 = 2.2.0 - 10/10/2026 = 213 - New: read-only AI agent and MCP support. On WordPress 6.9+ the plugin registers two abilities with the WordPress Abilities API: the security status (score, checks, counts) and the known vulnerabilities. Administrators only; nothing can be changed through them. 214 - New: `wp nhrrob-secure status --format=json`. 215 - Compatibility: verified on PHP 7.4 through 8.5 and on PHP 8.6 release candidates. 216 - Developer: every pull request now runs the PHPCompatibilityWP ruleset plus a syntax check, the unit tests and a runtime smoke test on each supported PHP version. The security probe also covers abilities. 202 217 203 218 = 2.1.0 - 05/10/2026 = … … 319 334 == Upgrade Notice == 320 335 336 = 2.2.0 = 337 Read-only AI agent and MCP support on WordPress 6.9+, a JSON status command for WP-CLI, and verified PHP 7.4 to 8.5 compatibility. No settings change. 338 321 339 = 2.1.0 = 322 340 New protections and tools, all off until you switch them on. Open the Dashboard for the recommended setup. -
nhrrob-secure/trunk/vendor/composer/installed.php
r3729213 r3737723 2 2 'root' => array( 3 3 'name' => 'nhrrob/secure', 4 'pretty_version' => 'v2. 1.0',5 'version' => '2. 1.0.0',6 'reference' => ' eecc1b4da298525456bc2ddfe5096cd52e7b2a98',4 'pretty_version' => 'v2.2.0', 5 'version' => '2.2.0.0', 6 'reference' => '3d06174df8b536b5c58bb796b0e7e82228069f5e', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 12 12 'versions' => array( 13 13 'nhrrob/secure' => array( 14 'pretty_version' => 'v2. 1.0',15 'version' => '2. 1.0.0',16 'reference' => ' eecc1b4da298525456bc2ddfe5096cd52e7b2a98',14 'pretty_version' => 'v2.2.0', 15 'version' => '2.2.0.0', 16 'reference' => '3d06174df8b536b5c58bb796b0e7e82228069f5e', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../',
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)