PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.2-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.2-a.1
16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / jetpack_vendor / automattic / jetpack-waf / src / class-waf-cli.php
jetpack / jetpack_vendor / automattic / jetpack-waf / src Last commit date
brute-force-protection 9 months ago exceptions 9 months ago abstract-blocked-login-page.php 2 months ago class-brute-force-protection.php 2 months ago class-compatibility.php 2 months ago class-rest-controller.php 9 months ago class-waf-blocked-login-page.php 9 months ago class-waf-blocklog-manager.php 8 months ago class-waf-cli.php 9 months ago class-waf-constants.php 1 year ago class-waf-initializer.php 2 months ago class-waf-operators.php 2 years ago class-waf-request.php 6 months ago class-waf-rules-manager.php 1 year ago class-waf-runner.php 2 months ago class-waf-runtime.php 2 months ago class-waf-standalone-bootstrap.php 2 months ago class-waf-stats.php 1 year ago class-waf-transforms.php 2 years ago functions.php 1 year ago
class-waf-cli.php
172 lines
1 <?php
2 /**
3 * CLI handler for Jetpack Waf.
4 *
5 * @package automattic/jetpack-waf
6 */
7
8 namespace Automattic\Jetpack\Waf;
9
10 use WP_CLI;
11 use WP_CLI_Command;
12
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit( 0 );
15 }
16
17 /**
18 * Set up the WAF, change its mode, or generate its rules.
19 */
20 class CLI extends WP_CLI_Command {
21 /**
22 * View or set the current mode of the WAF.
23 * ## OPTIONS
24 *
25 * [<mode>]
26 * : The new mode to be set.
27 * ---
28 * options:
29 * - silent
30 * - normal
31 * ---
32 *
33 * @param array $args Arguments passed to CLI.
34 * @return void|null
35 * @throws WP_CLI\ExitException If there is an error switching the mode.
36 */
37 public function mode( $args ) {
38 if ( count( $args ) > 1 ) {
39
40 return WP_CLI::error( __( 'Only one mode may be specified.', 'jetpack-waf' ) );
41 }
42 if ( count( $args ) === 1 ) {
43 if ( ! Waf_Runner::is_allowed_mode( $args[0] ) ) {
44
45 return WP_CLI::error(
46 sprintf(
47 /* translators: %1$s is the mode that was actually found. Also note that the expected "silent" and "normal" are hard-coded strings and must therefore stay the same in any translation. */
48 __( 'Invalid mode: %1$s. Expected "silent" or "normal".', 'jetpack-waf' ),
49 $args[0]
50 )
51 );
52 }
53
54 update_option( Waf_Runner::MODE_OPTION_NAME, $args[0] );
55
56 try {
57 ( new Waf_Standalone_Bootstrap() )->generate();
58 } catch ( \Exception $e ) {
59 WP_CLI::warning(
60 sprintf(
61 /* translators: %1$s is the unexpected error message. */
62 __( 'Unable to generate waf bootstrap - standalone mode may not work properly: %1$s', 'jetpack-waf' ),
63 $e->getMessage()
64 )
65 );
66 }
67
68 return WP_CLI::success(
69 sprintf(
70 /* translators: %1$s is the name of the mode that was just switched to. */
71 __( 'Jetpack WAF mode switched to "%1$s".', 'jetpack-waf' ),
72 get_option( Waf_Runner::MODE_OPTION_NAME )
73 )
74 );
75 }
76 WP_CLI::line(
77 sprintf(
78 /* translators: %1$s is the name of the mode that the waf is currently running in. */
79 __( 'Jetpack WAF is running in "%1$s" mode.', 'jetpack-waf' ),
80 get_option( Waf_Runner::MODE_OPTION_NAME )
81 )
82 );
83 }
84
85 /**
86 * Setup the WAF to run.
87 * ## OPTIONS
88 *
89 * [<mode>]
90 * : The new mode to be set.
91 * ---
92 * options:
93 * - silent
94 * - normal
95 * ---
96 *
97 * @param array $args Arguments passed to CLI.
98 * @return void|null
99 * @throws WP_CLI\ExitException If there is an error switching the mode.
100 */
101 public function setup( $args ) {
102 // Let is_allowed_mode know we are running from the CLI
103 define( 'WAF_CLI_MODE', $args[0] );
104
105 // Set the mode and generate the bootstrap
106 $this->mode( array( $args[0] ) );
107
108 try {
109 // Add relevant options and generate the rules.php file
110 Waf_Runner::activate();
111 } catch ( \Exception $e ) {
112
113 return WP_CLI::error(
114 sprintf(
115 /* translators: %1$s is the unexpected error message. */
116 __( 'Jetpack WAF rules file failed to generate: %1$s', 'jetpack-waf' ),
117 $e->getMessage()
118 )
119 );
120 }
121
122 return WP_CLI::success( __( 'Jetpack WAF has successfully been set up.', 'jetpack-waf' ) );
123 }
124
125 /**
126 * Delete the WAF options.
127 *
128 * @return void|null
129 * @throws WP_CLI\ExitException If deactivating has failures.
130 */
131 public function teardown() {
132 try {
133 Waf_Runner::deactivate();
134 } catch ( \Exception $e ) {
135 WP_CLI::error( __( 'Jetpack WAF failed to fully deactivate.', 'jetpack-waf' ) );
136 }
137
138 return WP_CLI::success( __( 'Jetpack WAF has been deactivated.', 'jetpack-waf' ) );
139 }
140
141 /**
142 * Generate the rules.php file with latest rules for the WAF.
143 *
144 * @return void|null
145 * @throws WP_CLI\ExitException If there is an error switching the mode.
146 */
147 public function generate_rules() {
148 try {
149 Waf_Constants::define_entrypoint();
150 Waf_Rules_Manager::generate_automatic_rules();
151 Waf_Rules_Manager::generate_rules();
152 } catch ( \Exception $e ) {
153
154 return WP_CLI::error(
155 sprintf(
156 /* translators: %1$s is the unexpected error message. */
157 __( 'Jetpack WAF rules file failed to generate: %1$s', 'jetpack-waf' ),
158 $e->getMessage()
159 )
160 );
161 }
162
163 return WP_CLI::success(
164 sprintf(
165 /* translators: %1$s is the name of the mode that was just switched to. */
166 __( 'Jetpack WAF rules successfully created to: "%1$s".', 'jetpack-waf' ),
167 Waf_Runner::get_waf_file_path( JETPACK_WAF_ENTRYPOINT )
168 )
169 );
170 }
171 }
172