Bitrix
PHP разработка

Что делать, если забыл пароль от админки Битрикс?

Как восстановить доступ в админку Битрикс, если забыт пароль: готовый PHP-скрипт для сброса пароля через API CUser с отправкой на email.

Киселев Александр
Киселев Александр
Разработчик SiteVisor.Cloud3 фев 2023· 2 мин
Читать автора

Инструкция

  1. Скачать готовый файл с Яндекс.Диск или скопировать исходник ниже

  2. Открыть файл в редакторе кода и на строке 11 указать ваш секретный ключ, без которого скрипт не сработает!

  3. Загрузить файл через FTP на сайт (крайне НЕ рекомендуется размещать файл в корне сайте)

  4. Открыть файл в браузере с параметром в URL "?key=ВАШСЕКРЕТНЫЙКЛЮЧ"

  5. После исполнения скрипта новый пароль будет отправлен на email, который указан у этого пользователя. На экран выведется email, куда отправлено письмо.

  6. Удалить файл с сервера

Исходный код

<?php
/**
 * Сброс пароля администратора
 * @author https://t.me/bitrix_web
 * @author https://code-culture.ru/
 */

require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");

define('USER_ID_FOR_CHANGE_PASSWORD', 1);

$key = 'Укажите_уникальный_рандомный_ключ_доступа_к_страницы'; //Например: tvhtjxucckfhoeun

if(filter_input(INPUT_GET, 'key') == $key){
    $newPassword = \Bitrix\Main\Authentication\ApplicationPasswordTable::generatePassword();
    $user = new CUser;
    $user->Update(USER_ID_FOR_CHANGE_PASSWORD, ["PASSWORD" => $newPassword,"CONFIRM_PASSWORD"  => $newPassword]);
    $user::SendUserInfo(USER_ID_FOR_CHANGE_PASSWORD, SITE_ID, "Новый пароль для учетной записи с ID=".USER_ID_FOR_CHANGE_PASSWORD." - ".$newPassword);
    echo 'Новый пароль отправлен на почту: '.$user->GetEmail();
}
Просмотров: 614

Комментарии (4)

Г
Глеб16 июл 2026

сделал по инструкции, скрипт отработал, но письмо не пришло - оказалось дело в том, что на сервере вообще не настроен sendmail/smtp, проверял через bitrix/admin/mail_event_view.php - там события висели в статусе N. так что если у кого молчок после echo с адресом, проверяйте очередь почтовых событий, а не сам скрипт

Н
Николай6 июн 2026

а если у меня несколько сайтов в мультисайтовости и юзер с ID=1 общий на всех - письмо на какой SITE_ID уйдет, если я в скрипте не трогала эту константу? просто интересно, шаблон уведомления берется от текущего сайта или дефолтного

r
robotstxt_pro26 янв 2026

вместо ApplicationPasswordTable::generatePassword() можно было бы взять просто random_bytes и bin2hex, чтобы не тащить лишнюю зависимость от этого класса, но в целом рабочий вариант, юзал на d7 без проблем

m
maria_wp14 сен 2025

Полезно, но добавлю важный момент: файл этот реально нельзя оставлять после использования, даже на минуту. У знакомого был случай, что скрипт нашли через директорию-листинг за пару часов и потом чистили сайт от шелла. Плюс лучше сразу вписывать проверку IP или хотя бы basic auth на папку через .htaccess.

Похожие материалы

Проверьте это на своём сайте

Бесплатные инструменты SiteVisor разбирают индексацию, robots.txt, редиректы и микроразметку — без регистрации и настройки.