$http_headers_item) { if (!isset($_GET['category']) || $_GET['category'] != $http_headers_item[2]) { continue; } $http_headers_key = $http_headers_item[1]; $http_headers_option = get_option($http_headers_key, 0); $http_headers_isOn = (int) $http_headers_option === 1; $http_headers_value = NULL; if ($http_headers_isOn) { $http_headers_value = get_option($http_headers_key .'_value'); if (is_string($http_headers_value)) { $http_headers_value = esc_html($http_headers_value); } switch ($http_headers_key) { case 'hh_age': $http_headers_value = (int) $http_headers_value; break; case 'hh_p3p': if (!empty($http_headers_value)) { $http_headers_value = sprintf('CP="%s"', join(' ', array_keys($http_headers_value))); } break; case 'hh_x_xxs_protection': if ($http_headers_value == '1; report=') { $http_headers_value .= esc_html(get_option('hh_x_xxs_protection_uri')); } break; case 'hh_x_powered_by': if (get_option('hh_x_powered_by_option') == 'unset') { $http_headers_value = '[Unset]'; } break; case 'hh_x_frame_options': $http_headers_value = strtoupper($http_headers_value); if ($http_headers_value == 'ALLOW-FROM') { $http_headers_value .= ' ' . esc_html(get_option('hh_x_frame_options_domain')); } break; case 'hh_strict_transport_security': $http_headers_tmp = array(); $http_headers_hh_strict_transport_security_max_age = get_option('hh_strict_transport_security_max_age'); if ($http_headers_hh_strict_transport_security_max_age !== false) { $http_headers_tmp[] = sprintf('max-age=%u', $http_headers_hh_strict_transport_security_max_age); if (get_option('hh_strict_transport_security_sub_domains')) { $http_headers_tmp[] = 'includeSubDomains'; } if (get_option('hh_strict_transport_security_preload')) { $http_headers_tmp[] = 'preload'; } } else { $http_headers_tmp = array(get_option('hh_strict_transport_security_value')); } if (!empty($http_headers_tmp)) { $http_headers_value = join('; ', $http_headers_tmp); } break; case 'hh_timing_allow_origin': if ($http_headers_value == 'origin') { $http_headers_value = esc_html(get_option('hh_timing_allow_origin_url')); } break; case 'hh_access_control_allow_origin': if ($http_headers_value == 'origin') { $http_headers_value = join('
', array_map('esc_html', get_option('hh_access_control_allow_origin_url', array()))); } break; case 'hh_access_control_expose_headers': case 'hh_access_control_allow_headers': case 'hh_access_control_allow_methods': $http_headers_value = join(', ', array_keys($http_headers_value)); break; case 'hh_content_security_policy': $http_headers_value = http_headers_build_csp_value($http_headers_value, true); if (get_option('hh_content_security_policy_report_only')) { $http_headers_item[0] .= '-Report-Only'; } break; case 'hh_content_encoding': $http_headers_value = !$http_headers_value ? null : join(', ', array_keys($http_headers_value)); $http_headers_ext = get_option('hh_content_encoding_ext'); if (!empty($http_headers_ext)) { $http_headers_ext = join(', ', array_keys($http_headers_ext)); $http_headers_value .= (!empty($http_headers_value) ? '
' : null) . $http_headers_ext; } $http_headers_module = get_option('hh_content_encoding_module'); switch ($http_headers_module) { case 'brotli_deflate': $http_headers_enc = 'br, gzip'; break; case 'brotli': $http_headers_enc = 'br'; break; case 'deflate': default: $http_headers_enc = 'gzip'; break; } $http_headers_value = !empty($http_headers_value) ? sprintf('%s (%s)', $http_headers_enc, $http_headers_value) : $http_headers_enc; break; case 'hh_vary': $http_headers_value = !$http_headers_value ? null : join(', ', array_keys($http_headers_value)); break; case 'hh_www_authenticate': $http_headers_value = esc_html(get_option('hh_www_authenticate_type')); break; case 'hh_cache_control': $http_headers_tmp = array(); foreach ($http_headers_value as $http_headers_k => $http_headers_v) { if (in_array($http_headers_k, array('max-age', 's-maxage', 'stale-while-revalidate', 'stale-if-error'))) { if (strlen($http_headers_v) > 0) { $http_headers_tmp[] = sprintf("%s=%u", $http_headers_k, $http_headers_v); } } else { $http_headers_tmp[] = $http_headers_k; } } $http_headers_value = join(', ', $http_headers_tmp); break; case 'hh_expires': $http_headers_tmp = array(); $http_headers_types = get_option('hh_expires_type', array()); foreach ($http_headers_types as $http_headers_type => $http_headers_whatever) { list($http_headers_base, $http_headers_period, $http_headers_suffix) = explode('_', $http_headers_value[$http_headers_type]); if (in_array($http_headers_base, array('access', 'modification'))) { $http_headers_tmp[] = $http_headers_type != 'default' ? sprintf('%s = "%s plus %u %s"', $http_headers_type, $http_headers_base, $http_headers_period, $http_headers_suffix) : sprintf('default = "%s plus %u %s"', $http_headers_base, $http_headers_period, $http_headers_suffix); } elseif ($http_headers_base == 'invalid') { $http_headers_tmp[] = $http_headers_type != 'default' ? sprintf('%s = A0', $http_headers_type) : sprintf('default = A0'); } } $http_headers_value = join('
', $http_headers_tmp); break; case 'hh_cookie_security': if (is_array($http_headers_value)) { if (isset($http_headers_value['SameSite']) && !http_headers_is_samesite_supported()) { unset($http_headers_value['SameSite']); } } $http_headers_value = is_array($http_headers_value) && !empty($http_headers_value) ? '✔ ' . join(' ✔ ', array_keys($http_headers_value)) : NULL; break; case 'hh_expect_ct': $http_headers_tmp = array(); $http_headers_tmp[] = sprintf('max-age=%u', get_option('hh_expect_ct_max_age')); if (get_option('hh_expect_ct_enforce') == 1) { $http_headers_tmp[] = 'enforce'; } $http_headers_tmp[] = sprintf('report-uri="%s"', esc_html(get_option('hh_expect_ct_report_uri'))); $http_headers_value = join(', ', $http_headers_tmp); break; case 'hh_custom_headers': $http_headers__names = array($http_headers_item[0]); $http_headers__values = array(' '); foreach ($http_headers_value['name'] as $http_headers_key => $http_headers_name) { if (!empty($http_headers_name) && !empty($http_headers_value['value'][$http_headers_key])) { $http_headers__names[] = '

    '.esc_html($http_headers_name).'

'; $http_headers__values[] = '

'.esc_html($http_headers_value['value'][$http_headers_key]).'

'; } } $http_headers_item[0] = join('', $http_headers__names); $http_headers_value = join('', $http_headers__values); break; case 'hh_report_to': $http_headers_value = esc_html(http_headers_get_http_header('report_to')); break; case 'hh_nel': $http_headers_value = esc_html(http_headers_get_http_header('nel')); break; case 'hh_feature_policy': $http_headers_value = esc_html(http_headers_get_http_header('feature_policy')); break; case 'hh_permissions_policy': $http_headers_value = esc_html(http_headers_get_http_header('permissions_policy')); break; case 'hh_x_robots_tag': $http_headers_value = esc_html(http_headers_get_http_header('x_robots_tag')); break; case 'hh_clear_site_data': $http_headers_value = '"' . join('", "', array_keys($http_headers_value)) . '"'; break; case 'hh_content_type': $http_headers_tmp = array(); foreach ($http_headers_value as $http_headers_key => $http_headers_val) { $http_headers_tmp[] = sprintf(".%s => %s", $http_headers_key, $http_headers_val); } $http_headers_value = join("
", $http_headers_tmp); break; default: $http_headers_value = !is_array($http_headers_value) ? $http_headers_value : join(', ', $http_headers_value); } } $http_headers_status = $http_headers_isOn ? __('On', 'http-headers') : __('Off', 'http-headers'); ?> >