Проанализируем ситуацию, с которой часто сталкиваются системные администраторы и руководители небольших компаний. У нас есть файловая база данных 1С, и мы хотим предоставить сотрудникам доступ для работы, но при этом полностью исключить возможность хищения (копирования) файла базы данных на внешний носитель или отправки по сети. Рассмотрим подробнее несколько подходов к решению этой нетривиальной задачи, от самых надежных до дополнительных "параноидальных" мер безопасности.
Разберем по шагам самый грамотный и технически правильный способ скрыть файл 1Cv8.1CD от глаз пользователей. Использование локального веб-сервера (IIS или Apache) решает проблему кардинально и бесплатно.
Механика защиты в этом случае выглядит так:
Почему это работает: При такой схеме происходит четкое разделение среды. Процесс 1С на компьютере пользователя общается только с веб-сервером, передавая запросы и получая готовые данные. Пользователь не имеет прямого доступа к файлу базы на уровне операционной системы, а значит, физически не может его скопировать, прикрепить к письму или перенести на флешку. Дополнительным бонусом является то, что работа через веб-сервер часто ускоряет работу с файловой базой, так как снижается зависимость от скорости локальной сети по протоколу SMB.
Посмотрим на альтернативный подход, если по каким-то причинам развертывание веб-сервера невозможно. Мы можем использовать встроенную в Windows утилиту runas для подмены контекста безопасности.
Проанализируем этот алгоритм:
InfobaseUser. Задаем ему сложный пароль.InfobaseUser и локальному администратору. У пользователей, под которыми сотрудники заходят в Windows, права на папку отбираются полностью..bat файл, который будет запускать платформу 1С от имени этого скрытого пользователя. Код будет выглядеть примерно так:
runas /user:InfobaseUser /savecred "C:\Program Files\1cv8\common\1cestart.exe"
/savecred позволяет ввести пароль скрытого пользователя только один раз (при первом запуске батника от имени администратора), после чего учетные данные сохраняются в системе, и пользователи не будут знать этот пароль..exe файл (используя утилиты вроде Bat-to-Exe Converter).В итоге, при попытке открыть папку через Проводник, система выдаст ошибку доступа. Однако запущенная через наш ярлык 1С будет иметь доступ к базе и работать корректно.
Выясним причину, почему одной изоляции файла недостаточно. Если пользователь запустил 1С, у него появляются возможности извлечь данные уже средствами самой платформы. Чтобы закрыть эти дыры, нам необходимо тщательно настроить конфигурацию и права.
Рассмотрим, что именно нужно отключить в режиме Конфигуратора:
Интерактивное сохранение и Вывод. Это заблокирует возможность сохранять списки документов, отчеты или табличные части в Excel или текстовые файлы.
ФС.КопироватьФайл(ИмяФайлаИсточника, ИмяФайлаПриемника, ФлагПерезаписи);
Проанализируем важный технический нюанс, о котором часто забывают. Сама платформа 1С накладывает транзакционные блокировки при работе пользователей. Блокировки таблиц сохраняются в служебном файле 1cv8.1CL. Если пользователь попытается "наживую" скопировать основной файл 1Cv8.1CD средствами операционной системы в тот момент, когда в базе работают другие люди или идут регламентные задания, он, скорее всего, получит поврежденную базу.
В такой "битой" копии часть данных будет относиться к моменту до транзакции, а часть — после. Восстановить такую базу даже с помощью утилиты `chdbfl.exe` бывает очень сложно. Это естественный сдерживающий фактор, но полагаться только на него нельзя.
Если мы хотим выстроить по-настоящему надежную инфраструктуру, рассмотрим дополнительные методы защиты на уровне железа и ОС:
.1cd и блокировать их загрузку в мессенджеры, браузеры или отправку по электронной почте.Используя комплексный подход, совмещающий веб-сервер (или изоляцию через `runas`) и тонкую настройку прав внутри 1С, мы можем практически гарантированно защитить файловую базу от несанкционированного копирования.