esc_html__( 'You have been locked out due to too many 404 requests.', 'defender-security' ), 'whitelist' => ".css\n.js\n.map\n/cdn-cgi/challenge-platform/", ); } /** * Initializes the object before loading by setting the lockout message and whitelist properties * to their default values. * * @return void */ protected function before_load(): void { $default_values = $this->get_default_values(); $this->lockout_message = $default_values['message']; $this->whitelist = $default_values['whitelist']; } /** * Get list of blocklisted or allowlisted data. * * @param string $type blocklist|allowlist. * * @return array */ public function get_lockout_list( $type = 'blocklist' ): array { $data = ( 'blocklist' === $type ) ? $this->blacklist : $this->whitelist; $arr = is_array( $data ) ? $data : array_filter( explode( PHP_EOL, $data ), function ( $line ) { return strlen( trim( $line ) ) > 0; } ); $arr = array_map( 'trim', $arr ); $arr = array_map( 'strtolower', $arr ); return $arr; } /** * Define settings labels. * * @return array */ public function labels(): array { return array( // New key 'enabled'. 'detect_404' => self::get_module_name(), // New key 'attempt'. 'detect_404_threshold' => esc_html__( '404 Detection - Threshold', 'defender-security' ), // New key 'timeframe'. 'detect_404_timeframe' => esc_html__( '404 Protection - Timeframe', 'defender-security' ), // New key 'lockout_type'. 'detect_404_lockout_ban' => esc_html__( '404 Protection - Duration Type', 'defender-security' ), // New key 'duration'. 'detect_404_lockout_duration' => esc_html__( '404 Detection - Duration', 'defender-security' ), // New key 'duration_unit'. 'detect_404_lockout_duration_unit' => esc_html__( '404 Protection - Duration units', 'defender-security' ), // New key 'lockout_message'. 'detect_404_lockout_message' => esc_html__( '404 Detection - Lockout Message', 'defender-security' ), // New key 'blacklist'. 'detect_404_blacklist' => esc_html__( '404 Detection - Files and Folders Blocklist', 'defender-security' ), // New key 'whitelist'. 'detect_404_whitelist' => esc_html__( '404 Detection - Files and Folders Allowlist', 'defender-security' ), // New key 'detect_logged'. 'detect_404_logged' => esc_html__( '404 Detection - Monitor logged in users', 'defender-security' ), ); } /** * Returns the module name for 404 Detection. * * @return string The module name. */ public static function get_module_name(): string { return esc_html__( '404 Detection', 'defender-security' ); } /** * Returns the module state based on the given flag. * * @param bool $flag The flag indicating the module state. * * @return string The module state, either 'active' or 'inactive'. */ public static function get_module_state( $flag ): string { return $flag ? esc_html__( 'active', 'defender-security' ) : esc_html__( 'inactive', 'defender-security' ); } }