Довольно часто перед нами встает задача ограничить возможности копирования конфиденциальной информации из форм списков (например, справочника "Партнеры" или "Контрагенты" в конфигурации УТ 11.4). Руководство считает, что необходимо защитить клиентскую базу и усложнить жизнь потенциальным инсайдерам. Разберем по шагам, какие инструменты предоставляет нам платформа 1С для защиты информационной собственности.
Конечно, мы понимаем, что программные ограничения не спасут от фотографии экрана на смартфон или простой записи контактов на бумагу. Однако наша основная задача — максимально закрыть каналы массовой утечки данных на уровне самой учетной системы. Проанализируем все доступные методы: от простейших настроек интерфейса до работы с правами доступа и встроенными объектами платформы.
Вместо того чтобы отключать свойства для каждой конкретной формы списка вручную, давайте рассмотрим более правильный и надежный архитектурный путь — закрыть доступ на уровне прав конфигурации. За копирование данных из таблиц и форм в платформе отвечает базовое право Вывод.
В типовых конфигурациях, таких как Управление торговлей 11, ERP или Бухгалтерия предприятия, разработчиками уже создана специализированная профильная роль. Разберем, как ее использовать:
Если мы применим этот метод, программа глобально запретит пользователю нажимать комбинации горячих клавиш Ctrl+C или Ctrl+Ins в любых списках. Кроме того, данная мера автоматически заблокирует печать таблиц и их сохранение в форматы Excel или PDF.
Если глобальное ограничение нам по каким-то причинам не подходит, и нужно закрыть копирование только для одного конкретного справочника, посмотрим на настройки самой управляемой формы. Распространенной ошибкой разработчиков является простое отключение множественного выбора в таблице. Это крайне слабая защита, так как пользователь может воспользоваться системной командой меню "Еще", выбрать пункт "Вывести список", и перед ним сформируется табличный документ, откуда базу клиентов скопировать не составит труда.
Чтобы этого избежать, выполним следующие действия в конфигураторе:
Вывод.ИспользованиеВывода.Запретить.Этот простой шаг полностью выключит саму возможность формирования табличного документа из текущего списка, блокируя массовый экспорт.
Часто под термином "запрет копирования" руководство подразумевает не только буфер обмена Windows, но и программную невозможность создать новую карточку контрагента путем копирования уже существующей. Проанализируем ситуацию: нам нужно перехватить действие пользователя до того, как скопированная карточка будет открыта на экране.
Программно это решается буквально за пару строк кода. Откроем модуль формы списка и найдем стандартное событие ПередНачаломДобавления. В эту процедуру платформа передает важный системный параметр Копирование. Посмотрим на пример рабочего кода:
&НаКлиенте
Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Если Копирование = Истина Тогда
Отказ = Истина;
Сообщить("Создание контрагентов путем копирования запрещено политикой безопасности!");
КонецЕсли;
КонецПроцедуры
Благодаря этому условию система жестко заблокирует использование клавиши F9 и пункта меню "Добавить копированием", отменяя стандартную обработку действия.
Долгое время в 1С не было прямых платформенных методов работы с буфером обмена, и разработчикам приходилось использовать костыли вроде COM-объектов. Однако, если мы планируем использовать свежие релизы платформы, у нас появляются новые мощные инструменты. Рассмотрим подробнее.
Начиная с версии 8.3.24, разработчикам был добавлен встроенный объект клиентского приложения СредстваБуфераОбмена. Теперь у нас есть платформенные методы для асинхронного чтения и проверки данных в буфере:
ИспользованиеДоступно() — позволяет проверить, разрешено ли текущему клиенту работать с буфером.СодержитДанныеАсинх() — проверяет наличие в памяти данных определенного формата.ПолучитьДанныеАсинх() — позволяет программно извлечь содержимое для проверки.В перспективе грамотное применение объекта СредстваБуфераОбмена дает нам больше гибкости для контроля за тем, что именно попадает в оперативную память системы из интерфейса 1С.
Выясним причину, почему поведение системы защиты может отличаться, если пользователи работают не через тонкий клиент. Если наша база 1С опубликована на веб-сервере и доступ осуществляется через браузер, ограничения на работу с буфером обмена накладываются уже самим веб-обозревателем.
Для полноценного копирования больших объемов текста в 1С через веб-клиент требуется установить Расширение для работы с файлами и криптографией. Если системный администратор компании на уровне домена принудительно запретит установку этого расширения в браузерах сотрудников, они столкнутся с серьезными техническими сложностями при попытке скопировать списки в системный буфер Windows. Это можно использовать как дополнительный контур защиты.
Если требования к безопасности в компании близки к параноидальным, встроенных средств типовой платформы может не хватить. В таких случаях рассмотрим применение сертифицированного ПО. Существует специализированная защищенная платформа 1С:Предприятие 8.3z (она обычно отстает от последней версии на пару-тройку релизов). В ней на базовом уровне жестко порезаны многие механизмы вывода информации.
Кроме того, защиту данных следует выстраивать комплексно, на уровне операционной системы. Приведем несколько примеров из практики системных администраторов:
DisableSnippingTool) и блокируется работа клавиши PrintScreen.Подведем итог: Техническая возможность запретить пользователям использование буфера обмена и массовый экспорт в 1С определенно есть. Самый быстрый и грамотный путь разработчика — снять галочку с системной роли вывода в буфер обмена и назначить пользователю урезанный профиль доступа. Это закроет программные пути утечки клиентской базы, после чего эстафету защиты можно передавать системным администраторам.