"Обфускация" информационной базы








Иногда необходимо получить у Заказчика базу данных для выполнения работ не на его территории (дома, у себя в офисе и т.п), но Заказчик упирается и не хочет давать базу, аргументируя тем, что база содержит конфиденциальные данные и их утечка может повредить бизнесу.

Согласен с позицией Заказчика, вручать кому ни попадя результаты ведения деятельности на протяжении последних двух веков, по меньшей мере, нерезонно.

Однако работать надо и для успешного выполнения необходима база… С данными… Желательно с подробными…

Предлагаемая обработка позволяет решить конфликт интересов сторон: Исполнитель получает базу данных, а Заказчик может не беспокоится, что куда-то на сторону уйдет, например, база контактов контрагентов, кропотливо собранная несколькими поколениями менеджеров 🙂

Собственно, в том виде, в который приходит база после обработки, ее можно нормально использовать, на мой взгляд, только для отладки обмена данными.

Разбираться в такой базе, почему не закрывается 23 счет, я бы, пожалуй, не стал… 🙂

Как это работает.

Обрабатываются справочники и регистры сведений (в версии для 7.7 — только справочники). Обфускации подлежат все реквизиты (для регистров сведений — ресурсы), которые имеют строковый тип.

Для получения беспорядочного набора символов используется генератор случайных чисел. В версии для 7.7 для генерации чисел используется объект MSScriptControl.ScriptControl (спасибо Rusel2009 за его публикацию Генерация случайных чисел (random) , натолкнувшую, собственно, на эту идею).

Кроме генератора случайных чисел предусмотрен режим «лояльной» обфускации, результаты работы которого более приятны взору. В этом режиме наименования справочников и реквизитов формируются как «ИмяОбъектаМетаданных»+»ПорядковыйНомер». То есть, справочник «Контрагенты», например, примет вид:

    — Контрагенты 1

    — Контрагенты 2

    — …

    — Контрагенты N

Численные значения остаются без изменений, поскольку задача их искажения не стояла, но, в принципе, можно и их «порубать на шматки» 🙂

Хочется обратить внимание, что изменения, вносимые обработкой — необратимые, поэтому желательно заранее запастись резервной копией, да и вообще, не производить никаких тестов на рабочей базе.

Обработки универсальны, будут работать на любой конфигурации. Тестировались на 4-х базах 7.7 и на 6-ти 8.2 (в том числе — одна самописная).

26 Comments

  1. gr0ck

    А как насчет десятка другних обработок, которые уже есть на инфостарте? А как насчет типовой обработки 1С?

    Reply ↓
  2. Krasnyj

    Это какая типовая такое делает? А что касается десятка других — не вижу ничего плохого в 11-й. Автор же ее не за деньги предлагает.

    Reply ↓
  3. AlexSunS

    В копилку,…пригодится….(ох скольков этой копилке лежит уже с инфостарта и др.сайтов)

    Reply ↓
  4. maxis33

    (2) Krasnyj, ИзменениеКонфиденциальнойИнформации.epf на ИТС лежит

    Reply ↓
  5. Krasnyj

    (4) maxis33, а, эта.. подзабыл. Ну, все равно — кому хуже стало от того, что добавилась лишняя? Кому-то удобна та, кому-то эта, почему нет?

    Reply ↓
  6. maxis33

    (5) Krasnyj, выбор это всегда хорошо,

    У меня как-то эта типовая обработка не завелась, вываливалась с ошибкой на одной базе.. и подобная альтернативы была бы очень кстати.

    Reply ↓
  7. kapustinag

    Ну если клиент особо печется за конфиденциальность, а программистов в штате нет, то недоверие все-равно останется — а вдруг у Вас есть обработка, восстанавливающая испорченные названия? Или вдруг обработка, во время обфускации, втихомолку пишет соответствия в какой-то файлик?

    Так что — возможно — клиент все-равно базу не даст. Или не даст даже обработку запустить.

    Reply ↓
  8. Damian

    (4) а для 7.7? Мне по роду деятельности чаще приходится иметь дело с базами 7.7 (переносы данных в 8.2). К тому же типовая обработка наименования обрабатывает только в «лояльном» режиме. Зато остальное — конечно получше 🙂

    Reply ↓
  9. PiccaHut001

    адекватные клиенты отдают базу, те, кто не отдают, нищеброды-параноики, с ними не имеет смысла дела иметь.

    Reply ↓
  10. maxis33

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

    Reply ↓
  11. babys

    Минусанул.

    Объясняю. База у клиента берётся зачем? Разобрать косяки. Если изменили данные в базе, косяки могут пропасть? Могут. Зачем тогда??? А если клиент не доверяет, тогда вопрос к вам, ИМХО.

    Reply ↓
  12. Damian

    (11) мне клиентская база нужна, чтобы отладить обмен данными. Искать/устранять косяки лучше на нормальных данных.

    А по поводу доверия: многим ли близким Вам людям Вы доверили, например, Ваши пароли от почты/админки сайта/кредитной карточки?

    Reply ↓
  13. AltF1

    Идея не нова, но все же +

    Reply ↓
  14. MarSeN

    Делал похожее для 7.7 при аналогичной позиции заказчика )

    Reply ↓
  15. EarlyBird
    Если изменили данные в базе, косяки могут пропасть? Могут.

    Что за бред?

    Если например есть косяк во взаиморасчётах с контрагентом, разве он исчезнет после изменения строкового наименования контрагента?

    Reply ↓
  16. rus128

    (11) babys, а разве не написать новый отчет, не говоря уже о новом функционале (справочник, документ, регистр)?

    Reply ↓
  17. Artemuch2

    Добрый день! ну вот почему бы не выложить одним архивом сразу две. Коллеги отзовитесь как работает

    Reply ↓
  18. babys

    (16) rus128, ну попробуйте напишите отчёт завязанные на доп реквизиты, или паче того на разбор строки комментария. А я буду скромно так в сторонке стоять 🙂

    Reply ↓
  19. Светлый ум

    Плюс за лояльную обфускацию.

    Reply ↓
  20. higs

    Иногда есть плюсы в подобных обработках. Имеет полное право на жизнь. Спасибо!

    Reply ↓
  21. softgarant

    Очень полезная вешь, вот мне надо предоставить тестовую программу для демонстрации работы. Специально заполнять, что то генерировать трудоемкий процес но и специфика работы програмы такая что нельзя новому клиенту давать информацию. Пополню и скачаю.

    Reply ↓
  22. xten

    Хороший аргумент для повышения зарплаты: жадное начальство — добрая обфускация!

    Reply ↓
  23. kolombo_eburg

    Обработка понравилась — простая и полезная. Думаю следует сделать еще для управляемых форм, тогда она будет еще ценнее! Необходимость в этом уже действительно назрела.

    Reply ↓
  24. ceramica

    Да хотелось бы для УФ в связи с массовым «добровольным» переходом на них

    Reply ↓
  25. sergb1979

    Какое красивое слово использовали, даже пришлось к словарю прибегать

    Reply ↓
  26. Dvornik

    В управляемом приложении заработает?

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *