Решение: Битрикс - слетает сессия при использовании сервиса cloudflare

22836
2694
29 Октября 2018, 17:33

У одного из наших клиентов при использовании сервиса - защиты от DDOS атак, cloudflare возник баг - сессия постоянно слетала и любому пользователю, при каждом обновлении страницы приходилось вводить пароль заново.

bitrix - слетает сессия 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'];

Битрикс - слетает сессия при использовании сервиса cloudflare

Готово. Переменная REMOTE_ADDR будет содержать реальный IP пользователя и авторизация bitrix будет работать без проблем.

Теги:
  • Битрикс
  • BITRIX
  • cloudflare
  • сессии
  • авторизация
ДРУГИЕ СТАТЬИ
Избавляемся от fatal error uncaught в php
fatal error uncaugh возникает, когда в коде PHP происходит исключение (exception), вне конструкции try-catch
932
111
28.03.2023
Исправляем ошибку cannot find module node js
Причины и решения ошибки в node.js - cannot find module
4292
515
27.03.2023
Ошибка E00e0 в API pointexpress.ru
Причины возникновения ошибки E00e0 в API pointexpress.ru
599
71
17.01.2023
Коды ошибок Telegram API
Коды возвращаемых ошибок от API Telegram
7748
929
06.12.2021
Комментарии
5 лет назад
Спасибо. Мучался 2 дня, пока не нашел твой пост. Что забавно перебровал все отсюда https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=48&LESSON_ID=2167

Павел

5 лет назад
Спасибо большое за статью! Помогла!

Сергей

5 лет назад
Спасибо большое!
4 года назад

Николай

4 года назад
Большой спасибо за статью!

в моем случае пришлось еще и HTTP_X_REAL_IP подменить, тогда все заработало

$_SERVER["REMOTE_ADDR"] = $_SERVER;
$_SERVER["HTTP_X_REAL_IP"] = $_SERVER;

Николай

4 года назад
Большой спасибо за статью!

в моем случае пришлось еще и HTTP_X_REAL_IP подменить, тогда все заработало

$_SERVER["REMOTE_ADDR"] = $_SERVER;
$_SERVER["HTTP_X_REAL_IP"] = $_SERVER;

Александр

4 года назад
Спасибо большое. Именно мой случай.
3 года назад
Спасибо, мил человек!
2 года назад
Спасибо, добрый человек, помогла твоя статья, несколько часов мучался, не мог понять
Спасибо! Помогло при ошибке
"Permission denied: BITRIX SESSID ERROR" (англоязычный Битрикс24, страница /bitrix/admin/site_checker.php).
До этого очистка куки + кэша + local storage и всего прочего, что сохраняется в браузере, не помогала.
1 год назад

Александр

1 год назад
Спасибо, бро.
Комментировать