Project

General

Profile

Bug #15135 » 2006-01-18-typo3-sslproxy.patch

Administrator Admin, 2006-01-18 23:45

View differences:

typo3.8.1/t3lib/class.t3lib_div.php 2006-01-12 23:03:49.626885740 +0000
*/
# if ($getEnvName=='HTTP_REFERER') return '';
if (
!empty($_SERVER["HTTP_X_FORWARDED_HOST"]) &&
($_SERVER["SERVER_ADDR"] == $_SERVER["REMOTE_ADDR"]) &&
!empty($GLOBALS['TYPO3_CONF_VARS']['BE']['ReverseProxyDirectory'])
) {
$sslproxy = $GLOBALS['TYPO3_CONF_VARS']['BE']['ReverseProxyDirectory'];
} else {
$sslproxy = "";
}
switch((string)$getEnvName) {
case 'SCRIPT_NAME':
return (php_sapi_name()=='cgi'||php_sapi_name()=='cgi-fcgi')&&($_SERVER['ORIG_PATH_INFO']?$_SERVER['ORIG_PATH_INFO']:$_SERVER['PATH_INFO']) ? ($_SERVER['ORIG_PATH_INFO']?$_SERVER['ORIG_PATH_INFO']:$_SERVER['PATH_INFO']) : ($_SERVER['ORIG_SCRIPT_NAME']?$_SERVER['ORIG_SCRIPT_NAME']:$_SERVER['SCRIPT_NAME']);
$retval = (php_sapi_name()=='cgi'||php_sapi_name()=='cgi-fcgi')&&($_SERVER['ORIG_PATH_INFO']?$_SERVER['ORIG_PATH_INFO']:$_SERVER['PATH_INFO']) ? ($_SERVER['ORIG_PATH_INFO']?$_SERVER['ORIG_PATH_INFO']:$_SERVER['PATH_INFO']) : ($_SERVER['ORIG_SCRIPT_NAME']?$_SERVER['ORIG_SCRIPT_NAME']:$_SERVER['SCRIPT_NAME']);
return $sslproxy . $retval;
break;
case 'SCRIPT_FILENAME':
return str_replace('//','/', str_replace('\\','/', (php_sapi_name()=='cgi'||php_sapi_name()=='isapi' ||php_sapi_name()=='cgi-fcgi')&&($_SERVER['ORIG_PATH_TRANSLATED']?$_SERVER['ORIG_PATH_TRANSLATED']:$_SERVER['PATH_TRANSLATED'])? ($_SERVER['ORIG_PATH_TRANSLATED']?$_SERVER['ORIG_PATH_TRANSLATED']:$_SERVER['PATH_TRANSLATED']):($_SERVER['ORIG_SCRIPT_FILENAME']?$_SERVER['ORIG_SCRIPT_FILENAME']:$_SERVER['SCRIPT_FILENAME'])));
......
case 'REQUEST_URI':
// Typical application of REQUEST_URI is return urls, forms submitting to itself etc. Example: returnUrl='.rawurlencode(t3lib_div::getIndpEnv('REQUEST_URI'))
if (!$_SERVER['REQUEST_URI']) { // This is for ISS/CGI which does not have the REQUEST_URI available.
return '/'.ereg_replace('^/','',t3lib_div::getIndpEnv('SCRIPT_NAME')).
return $sslproxy . '/'.ereg_replace('^/','',t3lib_div::getIndpEnv('SCRIPT_NAME')).
($_SERVER['QUERY_STRING']?'?'.$_SERVER['QUERY_STRING']:'');
} else return $_SERVER['REQUEST_URI'];
break;
......
case 'REMOTE_ADDR':
case 'REMOTE_HOST':
case 'HTTP_REFERER':
case 'HTTP_USER_AGENT':
case 'HTTP_ACCEPT_LANGUAGE':
case 'QUERY_STRING':
return $_SERVER[$getEnvName];
case 'HTTP_HOST':
if (!empty ($sslproxy)) {
return $GLOBALS['TYPO3_CONF_VARS']['BE']['ReverseProxyServer'] ;
} else {
return $_SERVER[$getEnvName];
}
break;
case 'TYPO3_DOCUMENT_ROOT':
// Some CGI-versions (LA13CGI) and mod-rewrite rules on MODULE versions will deliver a 'wrong' DOCUMENT_ROOT (according to our description). Further various aliases/mod_rewrite rules can disturb this as well.
// Therefore the DOCUMENT_ROOT is now always calculated as the SCRIPT_FILENAME minus the end part shared with SCRIPT_NAME.
......
return $DR;
break;
case 'TYPO3_HOST_ONLY':
if (!empty($sslproxy)) return $GLOBALS[$TYPO3_CONF_VARS['BE']['ReverseProxyServer']];
$p = explode(':',$_SERVER['HTTP_HOST']);
return $p[0];
break;
......
return $p[1];
break;
case 'TYPO3_REQUEST_HOST':
return (t3lib_div::getIndpEnv('TYPO3_SSL') ? 'https://' : 'http://').
$_SERVER['HTTP_HOST'];
$retval = (t3lib_div::getIndpEnv('TYPO3_SSL') ? 'https://' : 'http://');
if (empty($sslproxy)) {
$retval .= $_SERVER['HTTP_HOST'];
} else {
$retval .= $GLOBALS['TYPO3_CONF_VARS']['BE']['ReverseProxyServer'];
}
return $retval;
break;
case 'TYPO3_REQUEST_URL':
return t3lib_div::getIndpEnv('TYPO3_REQUEST_HOST').t3lib_div::getIndpEnv('REQUEST_URI');
return t3lib_div::getIndpEnv('TYPO3_REQUEST_HOST').$sslproxy . t3lib_div::getIndpEnv('REQUEST_URI');
break;
case 'TYPO3_REQUEST_SCRIPT':
return t3lib_div::getIndpEnv('TYPO3_REQUEST_HOST').t3lib_div::getIndpEnv('SCRIPT_NAME');
......
return substr(t3lib_div::getIndpEnv('TYPO3_REQUEST_URL'),strlen(t3lib_div::getIndpEnv('TYPO3_SITE_URL')));
break;
case 'TYPO3_SSL':
return $_SERVER['SSL_SESSION_ID'] || !strcmp($_SERVER['HTTPS'],'on') ? TRUE : FALSE;
if ($sslproxy) return true;
if (!strcmp(trim($GLOBALS['TYPO3_CONF_VARS']['BE']['checkSSLProxy']),'1') && isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
return true;
}
elseif (strcmp(trim($GLOBALS['TYPO3_CONF_VARS']['BE']['checkSSLProxy']),'0') && $GLOBALS['TYPO3_CONF_VARS']['BE']['checkSSLProxy']==$_SERVER['HTTP_X_FORWARDED_SERVER']) {
return true;
}
else {
return $HTTP_SERVER_VARS['SSL_SESSION_ID'] || !strcmp($HTTP_SERVER_VARS['HTTPS'],'on') ? TRUE : FALSE;
}
break;
case '_ARRAY':
$out = array();
(2-2/2)