$port = '';
if (! strstr($host, ':')) {
+ // Note: HTTP_X_FORWARDED_PROTO could be sent from the client and
+ // therefore possibly spoofed/hackable - for now, the
+ // administrator can tell SM to ignore this value by setting
+ // $sq_ignore_http_x_forwarded_headers to boolean TRUE in
+ // config/config_local.php, but in the future we may
+ // want to default this to TRUE and make administrators
+ // who use proxy systems turn it off (see 1.5.2+).
+ global $sq_ignore_http_x_forwarded_headers;
+ if ($sq_ignore_http_x_forwarded_headers
+ || !sqgetGlobalVar('HTTP_X_FORWARDED_PROTO', $forwarded_proto, SQ_SERVER))
+ $forwarded_proto = '';
if (sqgetGlobalVar('SERVER_PORT', $server_port, SQ_SERVER)) {
if (($server_port != 80 && $proto == 'http://') ||
($server_port != 443 && $proto == 'https://' &&