PluginProbe
Patchstack – WordPress & Plugins Security / 2.3.0
Patchstack – WordPress & Plugins Security v2.3.0
2.3.7 trunk 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.2 2.1.20 2.1.21 2.1.22 2.1.23 2.1.24 2.1.25 2.1.3 2.1.4 2.1.5 2.1.6 All 49 releases
patchstack / includes / admin / options.php

options.php in Patchstack – WordPress & Plugins Security 2.3.0, at includes/admin/options.php

162 lines 10.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 // Do not allow the file to be called directly.
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit;
6 }
7
8 /**
9 * This class is used to register all the options that Patchstack uses and anything
10 * related to options.
11 */
12 class P_Admin_Options extends P_Core {
13
14 /**
15 * Add the actions required for the otions.
16 *
17 * @param Patchstack $core
18 * @return void
19 */
20 public function __construct( $core ) {
21 parent::__construct( $core );
22 }
23
24 /**
25 * All options and their default values.
26 *
27 * @var array
28 */
29 public $options = [
30 // Hardening options.
31 'patchstack_pluginedit' => ['default' => 1, 'autoload' => 'yes'],
32 'patchstack_userenum' => ['default' => 1, 'autoload' => 'yes'],
33 'patchstack_hidewpversion' => ['default' => 1, 'autoload' => 'yes'],
34 'patchstack_activity_log_is_enabled' => ['default' => 1, 'autoload' => 'yes'],
35 'patchstack_activity_log_failed_logins' => ['default' => 1, 'autoload' => 'no'],
36 'patchstack_activity_log_failed_logins_db' => ['default' => 0, 'autoload' => 'no'],
37 'patchstack_activity_log_posts' => ['default' => 0, 'autoload' => 'yes'],
38 'patchstack_activity_log_comments' => ['default' => 0, 'autoload' => 'yes'],
39 'patchstack_xmlrpc_is_disabled' => ['default' => 1, 'autoload' => 'yes'],
40 'patchstack_captcha_type' => ['default' => 'v2', 'autoload' => 'no'],
41 'patchstack_captcha_public_key_v3' => ['default' => '', 'autoload' => 'no'],
42 'patchstack_captcha_private_key_v3' => ['default' => '', 'autoload' => 'no'],
43 'patchstack_captcha_public_key_v3_new' => ['default' => '', 'autoload' => 'no'],
44 'patchstack_captcha_private_key_v3_new' => ['default' => '', 'autoload' => 'no'],
45 'patchstack_captcha_public_key_turnstile' => ['default' => '', 'autoload' => 'no'],
46 'patchstack_captcha_private_key_turnstile' => ['default' => '', 'autoload' => 'no'],
47 'patchstack_captcha_public_key' => ['default' => '', 'autoload' => 'no'],
48 'patchstack_captcha_private_key' => ['default' => '', 'autoload' => 'no'],
49 'patchstack_captcha_login_form' => ['default' => 0, 'autoload' => 'no'],
50 'patchstack_captcha_registration_form' => ['default' => 0, 'autoload' => 'no'],
51 'patchstack_captcha_reset_pwd_form' => ['default' => 0, 'autoload' => 'no'],
52 'patchstack_captcha_on_comments' => ['default' => 0, 'autoload' => 'yes'],
53 'patchstack_json_is_disabled' => ['default' => 0, 'autoload' => 'yes'],
54 'patchstack_auto_update' => ['default' => [], 'autoload' => 'yes'],
55 'patchstack_application_passwords_disabled' => ['default' => 1, 'autoload' => 'yes'],
56
57 // The firewall and whitelist rules.
58 'patchstack_firewall_rules' => ['default' => '', 'autoload' => 'yes'],
59 'patchstack_firewall_rules_v3' => ['default' => '[]', 'autoload' => 'yes'],
60 'patchstack_firewall_rules_v3_ap' => ['default' => '[]', 'autoload' => 'yes'],
61 'patchstack_firewall_ap_error' => ['default' => '', 'autoload' => 'no'],
62 'patchstack_whitelist_rules' => ['default' => '', 'autoload' => 'yes'],
63 'patchstack_whitelist_rules_v3' => ['default' => '[]', 'autoload' => 'yes'],
64 'patchstack_whitelist_keys_rules' => ['default' => '', 'autoload' => 'yes'],
65
66 // Firewall options.
67 'patchstack_basic_firewall' => ['default' => 1, 'autoload' => 'yes'],
68 'patchstack_basic_firewall_roles' => ['default' => [ 'administrator', 'editor', 'author', 'contributor' ], 'autoload' => 'yes'],
69 'patchstack_firewall_ip_header' => ['default' => '', 'autoload' => 'yes'],
70 'patchstack_ip_header_computed' => ['default' => 0, 'autoload' => 'no'],
71 'patchstack_ip_header_force_compute' => ['default' => 0, 'autoload' => 'no'],
72 'patchstack_disable_htaccess' => ['default' => 0, 'autoload' => 'yes'],
73 'patchstack_block_debug_log_access' => ['default' => 1, 'autoload' => 'no'],
74 'patchstack_block_fake_bots' => ['default' => 1, 'autoload' => 'no'],
75 'patchstack_index_views' => ['default' => 1, 'autoload' => 'no'],
76 'patchstack_proxy_comment_posting' => ['default' => 1, 'autoload' => 'no'],
77 'patchstack_image_hotlinking' => ['default' => 0, 'autoload' => 'no'],
78 'patchstack_prevent_default_file_access' => ['default' => 1, 'autoload' => 'no'],
79 'patchstack_basicscanblock' => ['default' => 1, 'autoload' => 'no'],
80 'patchstack_firewall_custom_rules' => ['default' => '', 'autoload' => 'no'],
81 'patchstack_firewall_custom_rules_loc' => ['default' => 'bottom', 'autoload' => 'no'],
82 'patchstack_add_security_headers' => ['default' => 1, 'autoload' => 'yes'],
83 'patchstack_ip_block_list' => ['default' => '', 'autoload' => 'yes'],
84 'patchstack_geo_block_enabled' => ['default' => 0, 'autoload' => 'yes'],
85 'patchstack_geo_block_inverse' => ['default' => 0, 'autoload' => 'yes'],
86 'patchstack_geo_block_countries' => ['default' => [], 'autoload' => 'yes'],
87
88 // Login and firewall brute force options.
89 'patchstack_block_bruteforce_ips' => ['default' => 0, 'autoload' => 'no'],
90 'patchstack_anti_bruteforce_attempts' => ['default' => 10, 'autoload' => 'no'],
91 'patchstack_anti_bruteforce_minutes' => ['default' => 5, 'autoload' => 'no'],
92 'patchstack_anti_bruteforce_blocktime' => ['default' => 60, 'autoload' => 'no'],
93 'patchstack_autoblock_attempts' => ['default' => 60, 'autoload' => 'yes'],
94 'patchstack_autoblock_minutes' => ['default' => 1, 'autoload' => 'yes'],
95 'patchstack_autoblock_blocktime' => ['default' => 1, 'autoload' => 'yes'],
96 'patchstack_login_time_block' => ['default' => 0, 'autoload' => 'no'],
97 'patchstack_login_time_start' => ['default' => '00:00', 'autoload' => 'no'],
98 'patchstack_login_time_end' => ['default' => '23:59', 'autoload' => 'no'],
99 'patchstack_login_2fa' => ['default' => 0, 'autoload' => 'yes'],
100 'patchstack_login_whitelist' => ['default' => '', 'autoload' => 'no'],
101
102 // General options.
103 'patchstack_environment_hash' => ['default' => '', 'autoload' => 'no'],
104 'patchstack_software_data_hash' => ['default' => '', 'autoload' => 'yes'],
105 'patchstack_software_upload_attempted' => ['default' => false, 'autoload' => 'yes'],
106 'patchstack_firewall_htaccess_hash' => ['default' => '', 'autoload' => 'no'],
107 'patchstack_license_expiry' => ['default' => '', 'autoload' => 'yes'],
108 'patchstack_clientid' => ['default' => false, 'autoload' => 'yes'],
109 'patchstack_secretkey' => ['default' => false, 'autoload' => 'no'],
110 'patchstack_secretkey_nonce' => ['default' => '', 'autoload' => 'no'],
111 'patchstack_license_free' => ['default' => 0, 'autoload' => 'yes'],
112 'patchstack_api_token' => ['default' => '', 'autoload' => 'yes'],
113 'patchstack_subscription_class' => ['default' => '', 'autoload' => 'no'],
114 'patchstack_last_license_check' => ['default' => 0, 'autoload' => 'no'],
115 'patchstack_whitelist' => ['default' => '', 'autoload' => 'yes'],
116 'patchstack_show_settings' => ['default' => 0, 'autoload' => 'no'],
117 'patchstack_firewall_log_lastid' => ['default' => 0, 'autoload' => 'no'],
118 'patchstack_eventlog_lastid' => ['default' => 0, 'autoload' => 'no'],
119 'patchstack_ott_action' => ['default' => '', 'autoload' => 'no'],
120 'patchstack_managed' => ['default' => false, 'autoload' => 'no'],
121 'patchstack_managed_text' => ['default' => '', 'autoload' => 'no'],
122 'patchstack_latest_vulnerable' => ['default' => [], 'autoload' => 'no'],
123 'patchstack_site_id' => ['default' => 0, 'autoload' => 'no'],
124 'patchstack_activation_secret' => ['default' => '', 'autoload' => 'no'],
125 'patchstack_activation_time' => ['default' => '', 'autoload' => 'no'],
126 'patchstack_firewall_ap_enabled' => ['default' => false, 'autoload' => 'yes'],
127 'patchstack_firewall_log_processing' => ['default' => false, 'autoload' => 'no'],
128 'patchstack_eventlog_processing' => ['default' => false, 'autoload' => 'no'],
129 'patchstack_firewall_log_ap_processing' => ['default' => false, 'autoload' => 'no'],
130
131 // Admin page rename options.
132 'patchstack_mv_wp_login' => ['default' => 0, 'autoload' => 'yes'],
133 'patchstack_rename_wp_login' => ['default' => 'swlogin', 'autoload' => 'yes'],
134 'patchstack_rename_wp_login_whitelist' => ['default' => [], 'autoload' => 'no'],
135
136 // Statistics
137 'patchstack_vulns_present' => ['default' => '?', 'autoload' => 'no'],
138 'patchstack_fixes_present' => ['default' => '?', 'autoload' => 'no'],
139 'patchstack_vpatches_present' => ['default' => '?', 'autoload' => 'no'],
140 'patchstack_non_vpatches_present' => ['default' => '?', 'autoload' => 'no'],
141 'patchstack_hits_last_30' => ['default' => [], 'autoload' => 'no'],
142 'patchstack_hits_all_time' => ['default' => 0, 'autoload' => 'no'],
143 ];
144
145 /**
146 * Register all the options, if not set already.
147 *
148 * @return void
149 */
150 public function settings_init() {
151 // Add the options.
152 foreach ( $this->options as $name => $value ) {
153 add_option( $name, $value['default'], '', $value['autoload'] );
154
155 // Clone settings for multisite so we can set defaults.
156 if ( is_multisite() ) {
157 add_site_option( $name, $value['default'] );
158 }
159 }
160 }
161 }
162