1С-Битрикс

Как восстановить пароль от резервной копии в облаке Битрикс

Как восстановить забытый пароль от резервной копии в облаке 1С-Битрикс. Три рабочих способа: через админку, FTP или консоль сервера. Пошаговые инструкции с примерами кода.

sqlka.ruОпубликовано: Чтение: 4 мин.
Как восстановить пароль от резервной копии в облаке Битрикс

Ситуация знакома многим администраторам: при создании резервной копии в облаке «1С-Битрикс» вы установили пароль шифрования для защиты данных, а когда потребовалось восстановиться из бэкапа, пароль оказался забытым. К счастью, в большинстве случаев его можно восстановить, если у вас есть доступ к сайту или серверу. Рассмотрим три способа получить сохранённый пароль.

Что нужно знать перед началом

При создании резервной копии Битрикс временно сохраняет введённый пароль в специальном хранилище CPasswordStorage с ключом dump_temporary_cache. Именно оттуда мы попробуем его извлечь. Способы отличаются только тем, как именно выполнить код для чтения этого хранилища.

Способ 1: через административную панель (если есть доступ к админке)

Самый простой вариант — выполнить PHP-код прямо в админке, используя консоль или редактор.

  1. Войдите в административную часть сайта.
  2. Перейдите в раздел «Рабочий стол» → «Консоль PHP» (если он включён) или создайте временный PHP-файл через файловый менеджер (см. способ 2). Если модуль «Консоль PHP» не установлен, можно использовать любой редактор кода в админке, позволяющий выполнить PHP.
  3. Вставьте следующий код и выполните его:
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/backup.php");
var_dump(CPasswordStorage::Get('dump_temporary_cache'));
?>

На экране отобразится значение пароля. Скопируйте его и используйте для расшифровки бэкапа.

Способ 2: через FTP (загрузка скрипта и запуск через браузер)

Если доступа к админке нет, но вы можете загружать файлы по FTP, создайте простой PHP-скрипт.

  1. Создайте в любом текстовом редакторе файл, например get_pass.php, со следующим содержимым:
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/backup.php");
var_dump(CPasswordStorage::Get('dump_temporary_cache'));
?>
  1. Загрузите этот файл по FTP в корневую директорию вашего сайта (обычно /home/bitrix/www/ или /public_html/).
  2. Откройте в браузере адрес вашсайт.ru/get_pass.php.
  3. На странице вы увидите результат работы скрипта — забытый пароль.
  4. Важно! Сразу после получения пароля удалите файл get_pass.php с сервера, чтобы исключить возможность его использования злоумышленниками.

Способ 3: через FTP и консоль сервера (если нет доступа к веб-запросу)

Иногда доступ к сайту через браузер невозможен (например, сайт полностью неработоспособен). В этом случае можно запустить скрипт напрямую из командной строки сервера.

  1. Создайте на своём компьютере файл getpass.php с таким содержимым:
<?php
$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/../..");

$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS",true);
define('BX_NO_ACCELERATOR_RESET', true);

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/backup.php");

var_dump(CPasswordStorage::Get('dump_temporary_cache'));
?>

Этот код самостоятельно определяет корневую директорию сайта (поднимаясь на два уровня выше от места расположения скрипта). Убедитесь, что путь правильный: если файл будет лежать в корне сайта, возможно, потребуется скорректировать realpath. Если вы поместите файл в корень, можно упростить, заменив первую строку на $_SERVER["DOCUMENT_ROOT"] = __DIR__;.

  1. Загрузите файл по FTP в корень сайта (например, /home/bitrix/ext_www/mysite.www/getpass.php).
  2. Подключитесь к серверу по SSH (или используйте консоль хостинга).
  3. Перейдите в каталог с файлом и выполните команду:
/usr/bin/php -f getpass.php

В зависимости от настроек сервера путь к PHP может отличаться (проверьте командой which php). После выполнения в консоли отобразится пароль.

  1. Не забудьте удалить скрипт с сервера после использования.

Что делать, если пароль не найден?

Если ни один из способов не дал результата (например, хранилище dump_temporary_cache пусто или пароль был задан без сохранения), восстановить его штатными средствами невозможно. В таком случае можно попробовать:

  • поискать пароль в файлах сайта (в конфигурациях модуля резервного копирования);
  • использовать специализированные утилиты для подбора паролей (brute force), но это крайне долго и не всегда успешно;
  • если резервная копия критически важна, обратиться в техническую поддержку «1С-Битрикс» или к разработчикам, возможно, они смогут помочь.

Лучший способ избежать такой ситуации — хранить пароли от бэкапов в надёжном менеджере паролей и записывать их при создании копии.

Заключение

Восстановить забытый пароль от облачной резервной копии Битрикс чаще всего можно, выполнив один из приведённых выше скриптов. Главное — действовать осторожно и сразу удалять временные файлы после получения пароля, чтобы не создавать уязвимостей на сайте.

PHP WEB LINUX

Хотите освоить SQL для работы с данными?

В SQLka можно изучать SQL последовательно или готовиться к собеседованиям. Запросы выполняются прямо в браузере — устанавливать базу данных не нужно.

sqlka.ru

support@sqlka.ru

Дальше по теме

1С-Битрикс

Логирование в 1С-Битрикс: полное руководство для разработчика

Полное руководство по логированию в 1С-Битрикс: какие логгеры есть, как их настроить, форматировать сообщения и подключать к своим классам. Примеры кода и советы по использованию PSR-3

sqlka.ruЧтение: 4 мин.
← Все статьи