GNU2 можно ли зашифровать часть компонента MODX?

Мы планируем выпустить компонент MODX Стоимостью 100-150т.р. Как говорили по GNU компонент нельзя шифровать, но думаю защита только транспортного пакета для такой суммы недостаточна.
Читаю GNU2:

Каждый раз, когда вы распространяете Программу (или любую работу, основанную на Программе), получатель автоматически получает лицензию от исходного лицензиара на копирование, распространение или изменение Программы в соответствии с настоящими условиями
Эта Стандартная общественная лицензия не разрешает включение вашей программы в проприетарные программы. Если ваша программа является библиотекой подпрограмм, вы можете посчитать более полезным разрешить связывать проприетарные приложения с библиотекой. Если это то, что вы хотите сделать, используйте Стандартную общественную лицензию меньшего применения GNU вместо этой лицензии.
Ничего не понял. Здесь подразумевается, что распространение ПО модификация ПО по GNU2 нельзя шифровать? То есть компонент для MODX не содержит в себе каких-то компонентов MODX и соответственно может предоставляться нами без части исходников? MODX только фреймворк. Или это не правильно?
Александр Туниеков
09 января 2025, 04:00
modx.pro
416
+1
Поблагодарить автора Отправить деньги

Комментарии: 16

Артур Шевченко
09 января 2025, 21:01
0
думаю защита только транспортного пакета для такой суммы недостаточна
А что ещё, кроме транспортника, вы можете зашифровать?
    Александр Туниеков
    09 января 2025, 22:52
    0
    Внести часть кода в exe или dll и вызовы функций из них делать. Я конечно еще такое не делал но думаю это возможно.
      Артур Шевченко
      10 января 2025, 10:18
      0
      Внести часть кода в exe или dll
      Это же расширения из Windows, причём тут Modx и его компоненты?
        Александр Туниеков
        13 января 2025, 06:11
        0
        Я MODX на винде юзаю по большей части. Просто не знаю как бинарники в Ubuntu называются. В общем можно скомпилировать исходники и через shell_exec в php вызавать. Хотя конечно изврат.
    Николай Савин
    10 января 2025, 10:35
    0
    Шифрование исходного кода PHP может быть полезно для защиты интеллектуальной собственности или предотвращения несанкционированного доступа к коду. Однако стоит учитывать, что полная защита исходного кода невозможна, так как PHP выполняется на стороне сервера, и расшифрованный код должен быть доступен для интерпретатора. Тем не менее, вот несколько способов, которые могут помочь затруднить чтение исходного кода:

    1. Использование инструментов для обфускации кода

    Обфускация — это процесс преобразования исходного кода в трудночитаемую форму, сохраняя его функциональность. Существуют инструменты, которые могут обфусцировать PHP-код:

    PHP Obfuscator: Инструменты вроде PHP Obfuscator или ionCube PHP Obfuscator могут преобразовать код в нечитаемый вид.
    YAK Pro: Бесплатный инструмент для обфускации PHP-кода.

    Пример использования:
    php yakpro-po.php your_script.php -o obfuscated_script.php
    2. Шифрование с помощью ionCube или Zend Guard
    Эти коммерческие инструменты позволяют зашифровать PHP-код и запускать его с помощью специального расширения на сервере.
    • ionCube: Шифрует код и требует установки ionCube Loader на сервере.
    • Zend Guard: Аналогично ionCube, шифрует код и требует Zend Optimizer.
    Пример использования ionCube:

    ioncube_encoder your_script.php -o encrypted_script.php
    3. Использование base64_encode и eval
    Этот метод не является надежным, но может затруднить чтение кода. Код кодируется в base64, а затем декодируется и выполняется с помощью eval.
    Пример:

    <?php
    $code = '<?php echo "Hello, World!"; ?>';
    $encoded = base64_encode($code);
    eval(base64_decode($encoded));
    ?>
    4. Самописное шифрование

    Вы можете написать собственный алгоритм шифрования и расшифровки кода. Однако это требует глубоких знаний в криптографии и может быть ненадежным.
    Пример:

    <?php
    function encrypt($code, $key) {
        return openssl_encrypt($code, 'AES-128-CBC', $key);
    }
    
    function decrypt($encrypted, $key) {
        return openssl_decrypt($encrypted, 'AES-128-CBC', $key);
    }
    
    $code = '<?php echo "Hello, World!"; ?>';
    $key = 'your_secret_key';
    $encrypted = encrypt($code, $key);
    eval(decrypt($encrypted, $key));
    ?>
    5. Использование PHP-расширений

    Вы можете написать собственное PHP-расширение на C, которое будет содержать зашифрованный код. Это требует навыков программирования на C и работы с PHP API.

    Важные замечания:

    • Производительность: Шифрование и расшифровка кода могут замедлить выполнение скрипта.
    • Безопасность: Ни один метод не обеспечивает 100% защиту. Злоумышленник с достаточными знаниями и временем может декомпилировать или расшифровать код.
    • Лицензирование: Убедитесь, что использование инструментов шифрования соответствует лицензионным соглашениям
    Выбор метода зависит от ваших требований к безопасности, бюджета и уровня сложности, который вы готовы принять.
      Александр Туниеков
      10 января 2025, 18:30
      0
      Как то видел эти советы. Стоит ли шифровать или что-то друое стоит подумать.
      Здесь вопрос GNU запрещает шифровать компоненты для MODX или GNU запрещает шифровать модифицированную версию MODX? То есть изменил MODX и стал распространять (продавать) модифицированную версию зашифрованную. Это явно запрещено. А вот шифрование компонентов для MODX не понятно. Лицензия требует предоставлять исходный код основанный на MODX. Это как понимать? Как код включающий код MODX? Или как код использующий инструменты MODX. Как GNU трактуют для кода фреймворков?
        Николай Савин
        10 января 2025, 18:57
        0
        Вопрос о шифровании компонентов для MODX и модифицированных версий MODX связан с интерпретацией лицензий GNU, в частности GNU GPL (General Public License), под которой распространяется MODX.

        1. Модифицированная версия MODX
        Если вы модифицируете исходный код MODX и распространяете (или продаете) эту модифицированную версию, то лицензия GNU GPL требует, чтобы вы предоставили исходный код модифицированной версии. Шифрование модифицированной версии MODX явно нарушает это требование, так как лицензия GPL требует, чтобы исходный код был доступен для всех, кто получил модифицированную версию.

        2. Шифрование компонентов для MODX
        Компоненты для MODX (например, плагины, сниппеты, модули) могут рассматриваться как производные работы, если они напрямую используют или модифицируют код MODX. В этом случае они также подпадают под действие лицензии GPL, и их исходный код должен быть предоставлен.

        Однако, если компонент является самостоятельным программным обеспечением, которое лишь взаимодействует с MODX через API или другие интерфейсы, не включая и не модифицируя исходный код MODX, то он может не подпадать под требования GPL. В этом случае шифрование такого компонента может быть допустимым, но это зависит от конкретных обстоятельств и интерпретации лицензии.

        3. Код, включающий код MODX
        Если ваш код включает или модифицирует исходный код MODX, то он считается производной работой и должен распространяться под той же лицензией GPL с предоставлением исходного кода.

        4. Код, использующий инструменты MODX
        Если ваш код лишь использует API или другие инструменты MODX, не включая и не модифицируя его исходный код, то он может не подпадать под требования GPL. В этом случае шифрование такого кода может быть допустимым.

        5. Интерпретация для фреймворков
        Для фреймворков, распространяемых под лицензией GPL, обычно применяются те же принципы. Если ваш код является производной работой (включает или модифицирует код фреймворка), то он должен распространяться под GPL с предоставлением исходного кода. Если же ваш код лишь использует API или интерфейсы фреймворка, не включая его код, то он может не подпадать под требования GPL.
          Александр Туниеков
          11 января 2025, 04:36
          0
          ЭЭЭ… что-то ответ похож на chatGPT. Вы из него скопировали?
            Николай Савин
            11 января 2025, 11:35
            0
            Да. Но это грамотный ответ мнение, с которым я согласен
              Александр Туниеков
              13 января 2025, 06:03
              0
              Человек бы попытася что-то определенное сказать. Либо можно либо нельзя. А chatGPT выразился в общем. Четкого ответа что компоненты для MODX можно шифровать нет. Человек понимает, что компоненты MODX не включают в себя код MODX. Код MODX компонентом никак не модифицируется. А chatGPT этого не понимает.
              Хотя плагин на события модифицирует поведение MODX, но в себе кода MODX так то не содержит. Только API вызывает.
      Андрей Шевяков
      13 января 2025, 11:42
      0
      Мы планируем выпустить компонент MODX Стоимостью 100-150т.р.
      А если не секрет, что за дополнение такое планируется, за такую стоимость? Очень заинтриговали))
        Александр Туниеков
        13 января 2025, 20:25
        0
        У нас производственная компания и у нас 200 товаров и 10 000 000 модификаций на каждый. Мы написали (в смысле я) расчетную форму на MODX для такого кол-ва модификаций. Делали как универсальный компонент для множества таких производственных компаний. Она получилась сложной и потратили мы на нее около 1,5 миллиона. Расчетная форма готова, а планируется добавить к ней интернет-магазин, чтобы пользователи на сайте могли рассчитывать товары, компонент производство для распределения заказов по сменам и нарядам цеха. Компонент склада и в общем все то что надо для управлением производством.
        Похожее ПО на 1С только для вентиляции стоит 150т.р. А похожие онлайн сервисы берут по 10т.р. с пользователя в месяц.
        Вообще рекомендуют выпускасть минимально рабочий вариант ПО и меня терзают сомнения, до какой части реализации дойти и какую часть реализации выпустить :-(. Расчетная форма с админкой для инженеров ИТР, с перерывами, делалась 2 года. Пока планирую добить до интернет магазина и выкладывать здесь. Но еще что директор скажет и как решим вопрос с защитой ПО…
          Дима Касаткин
          13 января 2025, 20:57
          0
          Привет! Тоже интересуюсь этой темой, заинтересовал твой коммент:
          Вообще рекомендуют выпускасть минимально рабочий вариант ПО и меня терзают сомнения, до какой части реализации дойти и какую часть реализации выпустить
          А кто-где рекомендует? Я бы изучил мат. часть, потому что тоже планирую несколько релизов, но слабо разбираюсь в выпуске ПО на продажу, делая уже много лет типа «заказного ПО». Дай каких-нибудь ссылок на то, где ты это вычитал, плиз.

          Нам нужен профсоюз! :))

          P.S. Я не могу сменить свою оценку в твоем посте про ИИ когда она скрыта. Являясь местным активистом, всё-таки я не админ здешнего форума и к скрытым заметкам доступа у меня нет.
            Дима Касаткин
            13 января 2025, 21:04
            0
            Пока что по теме кажется что только обфускация будет 100% рабочим решением, если не повышать требования к хостингу. А если повышать, то мне кажется проще клиент-серверную архитектуру реализовать и всю бизнес-логику положить в сервер а на MODX сделать клиент, и распространять (продавать) сервер как docker-контейнер, в котором вообще весь код логики хоть в ioncube хоть в zend, зашифровать, хоть в бинарник вместе с веб-сервером скомпилить.

            Это похоже на более-менее future-proof решение, а докер есть сейчас ну почти на любой микроволновке :) ну и его при таком подходе заменить можно на чисто по API работающее нечто своё. Короче, открывается масса прекрасных возможностей. Хотелось бы твоё мнение на этот счет. Особенно после запуска FacetSearch я думаю некоторый опыт уже сложился у нас, надо его использовать!
              Александр Туниеков
              13 января 2025, 21:35
              0
              Особенно после запуска FacetSearch я думаю некоторый опыт уже сложился у нас, надо его использовать!
              FacetSearch так то провалился. Не хватило времени и желания довести его до ума. Но опыт сервиса есть :-).
              Часть компонента думаю сделать как сервис. Алгоритм расчета товара. Но один трабл есть. Со связанными товарами на сервис нужно отправлять всю базу товаров, чтобы алгоритм связанные товары вытащил. Что неудобно пользователям. А делать весь компонент сервисом другой трабл. Часть компонента юзерам надо модифицировать под себя. Например дизайн интернет магазина и отчеты.
              Александр Туниеков
              13 января 2025, 21:27
              0
              А кто-где рекомендует? Я бы изучил мат. часть, потому что тоже планирую несколько релизов, но слабо разбираюсь в выпуске ПО на продажу, делая уже много лет типа «заказного ПО». Дай каких-нибудь ссылок на то, где ты это вычитал, плиз
              Здесь вычитал.
              Как создать ИИ-бота с помощью нейросетей за месяц и привлечь инвестиции. История Daria AI
              Я не могу сменить свою оценку в твоем посте про ИИ когда она скрыта.
              Сейчас статья на хабре. И у меня были сильно завышенные ожидания от этой темы. Потихоньку ее делаю, но врядли что-то супер супер получиться.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          16