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








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

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

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

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

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

Разбираться в такой базе, почему не закрывается 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 не будет опубликован. Обязательные поля помечены *