|
Неактуальные
Проблемы с CMS Проблемы с форумамиОбщие Временные, срочные Домены ПрограммированиеSEO Перенос сайта Ошибки HTTP Сверхсрочные Проблемы с почтой Статистика Зарегистрировано:Администраторов - 4 Пользователей - 121 Отвечено на 196 вопросов Ожидающих вопросов 1 Ответы помогли 12910 людям
|
В связи с ошибкой в PHP 5.2.5 на данный момент показ ошибок к сажалению не работает.
нужно в файле common.php исправить строчку
$client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : getenv('REMOTE_ADDR') ); на строчку $client_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
Ручное испралвение для версии 1.0.13
Открываем файл: includes/joomla.php 946 строку заменяем на: $value = md5( $id . $_SERVER['HTTP_X_FORWARDED_FOR'] ); 951 строку заменяем на: $HTTP_X_FORWARDED_FOR = explode('.',$_SERVER['HTTP_X_FORWARDED_FOR']); 952 стрроку на: $ip = $HTTP_X_FORWARDED_FOR[0] .'.'. $HTTP_X_FORWARDED_FOR[1] .'.'. $HTTP_X_FORWARDED_FOR[2]; 958 строку на: $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 1470 строку на: $domain = @gethostbyaddr( getenv( "HTTP_X_FORWARDED_FOR" ) ); 1478 строку на: $domain = @gethostbyaddr( $_SERVER['HTTP_X_FORWARDED_FOR'] ); Готовое исправление для версии 1.0.13 - http://faq.ayola.net/files/1.0.13.zip Готовое исправление для версии 1.0.15 - http://faq.ayola.net/files/1.0.15.zip Готовое исправление для Joostina 1.1.3 - http://faq.ayola.net/files/joos_1.1.3.zip P.S. В скаченном архиве находится файл, именно этот файл сдедует помстить в каталог includes
Откройте файл function/security.php
62ую строку заменяем на: $temp_ip = getenv("HTTP_X_FORWARDED_FOR"); 209ую строку заменяем на: $ip = getenv("HTTP_X_FORWARDED_FOR"); 257 строку заменяем на: $ip = getenv("HTTP_X_FORWARDED_FOR"); Так же уже профиксеный файл можно скачать: http://faq.ayola.net/files/security.zip
Файл function/security.php, всё c 309 по 312 строку заменяем на:
if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) { $ip = getenv("HTTP_X_FORWARDED_FOR"); } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], "unknown")) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; Так же уже профиксеный файл можно скачать: http://faq.ayola.net/files/security_4.1.zip
Файл includes/ProxyTools.php
71 и 72 строки: поменять REMOTE_ADDR на HTTP_X_FORWARDED_FOR было /* collect the originating ips */ # Client connecting to this webserver if ( isset( $_SERVER['REMOTE_ADDR'] ) ) { $ipchain = array( IP::canonicalize( $_SERVER['REMOTE_ADDR'] ) ); } else { # Running on CLI? $ipchain = array( '127.0.0.1' ); } стало /* collect the originating ips */ # Client connecting to this webserver if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { $ipchain = array( IP::canonicalize( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ); } else { # Running on CLI? $ipchain = array( '127.0.0.1' ); }
Откройте файл /includes/session.php, найдите строки:
$this->ip = (!empty($_SERVER['REMOTE_ADDR'])) ? htmlspecialchars($_SERVER['REMOTE_ADDR']) : ''; $this->load = false; Измените на: $this->ip = (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) ? htmlspecialchars($_SERVER['HTTP_X_FORWARDED_FOR']) : ''; $this->load = false;
Зайдите в Админцентр -> Настройки -> "Безопасность и конфиденциальность", найдите опцию "Разрешить проверку соответствия IP-адреса для X_FORWARDED_FOR" и включите её. Не забудьте нажать внизу кнопку "Обновить настройки".
PS Работает для линейки 2.x
|