File "cloudflare-flexible-ssl.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/wp-rocket/inc/common/cloudflare-flexible-ssl.php
File
size: 1.93 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
defined('ABSPATH') || exit;
function rocket_is_cloudflare()
{
if (!isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
return false;
}
if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] === $_SERVER['HTTP_CF_CONNECTING_IP']) {
return true;
}
return rocket_is_cf_ip();
}
function rocket_is_cf_ip()
{
$original_ip = filter_input(INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP);
if (!isset($original_ip)) {
return false;
}
$cf_ips_values = get_transient('rocket_cloudflare_ips');
if (false === $cf_ips_values) {
$cf_ips_values = (object) ['success' => true, 'result' => (object) []];
$cf_ips_values->result->ipv4_cidrs = ['103.21.244.0/22', '103.22.200.0/22', '103.31.4.0/22', '104.16.0.0/12', '108.162.192.0/18', '131.0.72.0/22', '141.101.64.0/18', '162.158.0.0/15', '172.64.0.0/13', '173.245.48.0/20', '188.114.96.0/20', '190.93.240.0/20', '197.234.240.0/22', '198.41.128.0/17'];
$cf_ips_values->result->ipv6_cidrs = ['2400:cb00::/32', '2405:8100::/32', '2405:b500::/32', '2606:4700::/32', '2803:f800::/32', '2c0f:f248::/32', '2a06:98c0::/29'];
}
if (strpos($original_ip, ':') === false) {
$cf_ip_ranges = $cf_ips_values->result->ipv4_cidrs;
foreach ($cf_ip_ranges as $range) {
if (rocket_ipv4_in_range($original_ip, $range)) {
return true;
}
}
} else {
$cf_ip_ranges = $cf_ips_values->result->ipv6_cidrs;
$ipv6 = get_rocket_ipv6_full($original_ip);
foreach ($cf_ip_ranges as $range) {
if (rocket_ipv6_in_range($ipv6, $range)) {
return true;
}
}
}
return false;
}
function rocket_fix_cf_flexible_ssl()
{
$is_cf = rocket_is_cloudflare();
if ($is_cf) {
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && 'https' === $_SERVER['HTTP_X_FORWARDED_PROTO']) {
$_SERVER['HTTPS'] = 'on';
}
}
}