У одного из наших клиентов при использовании сервиса - защиты от DDOS атак, cloudflare возник баг - сессия постоянно слетала и любому пользователю, при каждом обновлении страницы приходилось вводить пароль заново.
Причем, админка работала более менее нормально, а в публичной части постоянно авторизация слетает. Неудобства для клиента, для контенщиков - невозмодно править элементы в режиме правки. В консоли браузера было видно, что при каждом обновлении меняется сессия юзера.
Проблема кроется в том, что после подключения к сервису cloudflare, в переменную $_SERVER['REMOTE_ADDR']
, которая должна содержать IP пользователя, передается IP cloudflare. Реальный же IP пользователя будет содержаться в переменной $_SERVER['HTTP_CF_CONNECTING_IP']
. Поэтому необходимо подменить переменную REMOTE_ADDR на HTTP_CF_CONNECTING_IP.
Итак, решение:
Открываем файл dbconn.php
. Путь к папке /bitrix/php_interface/dbconn.php. В конец файла добавляем:
$_SERVER["REMOTE_ADDR"] = $_SERVER['HTTP_CF_CONNECTING_IP'];
Готово. Переменная REMOTE_ADDR будет содержать реальный IP пользователя и авторизация bitrix будет работать без проблем.
Иван
5 лет назадПавел
5 лет назадСергей
5 лет назадНиколай
5 лет назадв моем случае пришлось еще и HTTP_X_REAL_IP подменить, тогда все заработало
$_SERVER["REMOTE_ADDR"] = $_SERVER;
$_SERVER["HTTP_X_REAL_IP"] = $_SERVER;
Николай
5 лет назадв моем случае пришлось еще и HTTP_X_REAL_IP подменить, тогда все заработало
$_SERVER["REMOTE_ADDR"] = $_SERVER;
$_SERVER["HTTP_X_REAL_IP"] = $_SERVER;
Александр
4 года назадИгорь
3 года назадАнтон
3 года назадAndrews32
2 года назад"Permission denied: BITRIX SESSID ERROR" (англоязычный Битрикс24, страница /bitrix/admin/site_checker.php).
До этого очистка куки + кэша + local storage и всего прочего, что сохраняется в браузере, не помогала.
Александр
2 года назад