INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Кашафутдинов Тимур | Разработчик | ООО еСолюшнс

«Логирование в приложениях»

Что такое логирование Какие потребности в информации о работе приложений возникают у отделов поддержки, тестирования, разработки Какие трудности возникают при сборе информации, в том числе из разрозненных систем Стандартные инструменты платформы 1С:Предприятие, их возможности и ограничения Самописные подсистемы логирования на базе 1С:Предприятия, их возможности и ограничения Общие требования к системе логирования: что должна уметь идеальная система? Краткий обзор возможностей специализированных систем логирования Внедрение и результаты Стоимость, преимущества и недостатки выбранной системы, перспективы Особенности реализации и использования библиотек логирования, на которые стоит обратить внимание Роль механизма расширений в конфигурировании и быстродействии подсистемы логирования

Защита модулей обработок, отчетов и конфигураций от нежелательного просмотра, изменений и декомпиляции

Администрирование - Защита, права, пароли

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

Как пользоваться обработкой: выбираете файл, который необходимо защитить и нажимаете кнопку. 

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

Обработка так же заменяет имена локальных переменных и имена локальных методов. Так же проверяются и не меняются методы-события, однако есть вероятность, что какой то метод-событие может быть случайно изменен. В таком случае есть возможность вручную указать методы, имена которых следует изменить:

 После выполнения в том же каталоге создается файл защищенный файл обработки с добавленным "_P" к имени. 

Рекомендации по усилению защиты:

1. Не давайте осмысленные имена важным экспортным методам и переменным типа "ЭтоПравильныйСерийныйНомер"

2. Используйте экспортные методы только для вызова локальных методов:

 
 ПРИМЕР

3. Шифруйте (например при помощи capicom) или вычисляйте важные значения (если таковые есть), присваиваемые переменным.

 
 методы для работы с capicom

4. Будет лучше, если в важных местах для проверки условий добавите функции:

 
 ПРИМЕР

Тестировалась на платформе 8.3.10.2580. Если возникнет ошибка "Процедура или функция с указанным именем не определена (стрразделить)" значит запускаете на старой версии платформы либо в конфигурации, с которой запускаете включен режим совместимости.

6

Скачать файлы

Наименование Файл Версия Размер
Защита модулей:
.epf 106,96Kb
10.05.18
1
.epf 106,96Kb 1 Скачать

См. также

Комментарии
Сортировка: Древо
1. kalyaka 375 11.05.18 10:00 Сейчас в теме
Антитезис: обработка сделает все возможное чтобы максимально затруднить использование Ваших решений :) Если Вы пишете простой, понятный, сопровождаемый код, то Вы все делаете неправильно! Обработка решит Вашу проблему, но и Вы можете помочь ей, следуя рекомендациям "правильного" написания кода, данным в статье.

Ну а если серьезно, то такое решение имеет специфическое применение: в системах шифрования, ведения персональных данных и т.д. Т.е. в системах изначально ориентированных на защиту данных, в том числе через защиту алгоритмов, защищающих эти данные.

Применение же такой обработки для защиты решений, встраиваемых в другие системы с открытой архитектурой не вижу смысла.

Защита же интеллектуальной собственности имеет смысл, если эта собственность имеет очень большую ценность с одной стороны и большую стоимость создания с другой - иначе при наличии спроса вероятнее найдется "свободное" решение и будет использоваться оно, а не закрытое. "Свободное" решение выигрывает за счет использования потенциала большого количества участников свободных сообществ (например github, infostart), а защищенное лишено таких возможностей.
Terve!R; lunjio; bulpi; Kott01; +4 1 Ответить
2. ice-net 11 11.05.18 10:14 Сейчас в теме
Для защиты решений от "неоплаты" вполне себе годная вещь. Плохо, что есть вероятность что-то сломать при кодировании.. Код закрыт?
5. boris.danilin 30 11.05.18 12:13 Сейчас в теме
(2) да, вероятность поломки есть и её не избежать. Код закрыт.
4. boris.danilin 30 11.05.18 12:09 Сейчас в теме
(1) Не первый раз обсуждается и всё равно разработчики нет нет - да и пытаются как то защитить свои труды зачем то. Демо версии обфусцируют, пароли на модули ставят и делают поставки без текстов.
8. d.zhukov 210 12.05.18 09:00 Сейчас в теме
(1) Приведите мне хотя бы одну причину, почему я не должен защищать свое коммерческое решение, в которое вложены огромные труды? Знаете ли, есть куча желающих перетянуть основной механизм, после просто навешать своих кнопочек и выдавать за собственную разработку, сделав цену немного ниже моей. Мне что в этом случае делать, как пострадавшему от плагиата и потери потенциальной прибыли? радоваться "звездочке", которую он мне поставил скачав мою обработку? нет уж спасибо)
9. kalyaka 375 12.05.18 21:47 Сейчас в теме
(8) Я исхожу из интереса потенциального покупателя Вашего ПО. Если покупатель заинтересован в использовании ПО, то его могут интересовать следующие его характеристики: качество, безопасность, сложность.

Качество - это потенциальные риски неоправданных ожиданий и дополнительных затрат.

Безопасность - потенциальные угрозы ПО: уничтожение данных преднамеренное или нет, кража данных.

Сложность - риск потенциальных затрат на сопровождение и также наличие ошибок.

Данное решение увеличивает риски по приведенным характеристикам. Т.о. конкурентных преимуществ защита ПО путем закрытия кода не будет приносить и при прочих почти равных условиях выбор будет в пользу открытого ПО.

Еще есть такой эффект как "коммодитизация ПО", который выдавливает коммерческие программные продукты в пользу отрытого ПО (см. подробнее в Николас Карр "Блеск и нищета ИТ")

Кстати, можно проанализировать выложенное на Инфостате коммерческое ПО и посмотреть продажи ПО с отрытым кодом и закрытым. Я попробовал посмотреть и заметил, что если код открыт, то это прямо упоминается в описании, а если закрыт - обычно нет.
10. d.zhukov 210 13.05.18 06:47 Сейчас в теме
(9) Качественно реализованное решение прямо сказывается на результат его работы. не думаю что большинство полезет в модуль объекта для оценки данной характеристики. На счет безопасности.. ну начнем с того, что язык 1с не предназначен для поиска паролей или пин-кодов на компьютере пользователя. Тем более если хотя бы один покупатель решения заметит подозрительные процессы и заявит об этом на инфостарте, поверьте проблем разработчику хватит. Потенциальные затраты покупатель может выявить сам, да и в любом случае можно заранее все уточнить у разработчика.
3. yurii_host 1790 11.05.18 10:34 Сейчас в теме
Я использовал эту, и ее модификацию для управляемых форм (эту).

Чем ваша обработка лучше, чем ее аналоги, уже проверенные временем?
6. boris.danilin 30 11.05.18 12:21 Сейчас в теме
(3) Это не аналоги. Изменить обфусцированный код модуля 1С значительно проще, чем разбираться в скомпилированном байт-коде.
grumagargler; +1 Ответить
7. raietchie 11.05.18 12:21 Сейчас в теме
(3) +
Monkey Coder, очень хорошо себя зарекомендовала ...
11. Tatitutu 3783 13.05.18 15:16 Сейчас в теме
11 лет продаю коммерческое решение - MAGAZKA - программа для розничного магазина
Основной код закрыт , но это не мешает никому - тех.поддержка 24 часа 7 дней в неделю 365 дней в году

Все "детские" болезни вылечены.
Любой объект можно заменить на свой.
внешние обработки и отчеты и внешние печатные формы.

14 стран , более 4000 клиентов ...
И только свои коллеги программисты иногда "сетовали" на то что код закрыт - остальным - главное чтобы качественно работало
12. klinval 260 24.05.18 13:52 Сейчас в теме
(11)
Основной код закрыт , но это не мешает никому ...
И только свои коллеги программисты иногда "сетовали" на то что код закрыт - остальным - главное чтобы качественно работало

Обращались ко мне уже давно по вопросу доработки Вашей программы. Закрыто как по мне на самом деле много. Сделал для себя такой вывод, т.к. помочь по абсолютному большинству вопросов не смог из-за закрытости кода. Отправил к Вам.
Оставьте свое сообщение