Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
YouTube 154 Подписчики
Telegram 241 Подписчики
VK 0 Подписчиков
Маркетер
Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • PHP

Лицензирование РНР-скриптов: решение Zend

  • 20.08.2004

Автор статьи: Александр Лозовюк

>

 

Лицензирование РНР-скриптов: решение Zend

[коммерческое распространение рнр-скриптов]материал подготовил: Александр Лозовюк
20.08.2004
 

Программисты, которые используют компилируемые языки высокого уровня (ObjectPascal, C/C++ и другие) при создании и распространении программы имеют возможность выбора — распространять ПО в виде скомпилированных двоичных файлов или открыть исходные тексты программы для всех желающих. Но вот для тех, кто создает серверные программы, используя один из скриптовых языков (Perl, Phyton, PHP) или Java/C# оказываются изначально ограниченны в возможностях распространения своих программ. Ведь поскольку используются скриптовые языки, то это значит, что исходный код программы (скрипта) открыт и превращается в исполняемый код средой исполнения (тут неважно — интерпретатором, JIT-компилятором Java, ядром PHP или .NET Runtime) непосредственно в момент запроса клиентом страницы. Конечно, тут есть много допущений, поскольку современные среды исполнения обычно применяют для увеличения быстродействия ряд методов, к примеру хранение заранее откомпилированного кода или байт-кода и т.д. Но суть всегда одна — программа (скрипт) распространяется в виде набора открытых исходных файлов.

Такое положение существенно ограничивало возможности разработчиков получать доход от продажи своих программ. Если в мире desktop-программ есть возможность привязки ПО к компьютеру, ограничение времени работу программы (trialware, shareware) и другие методы, то для скриптов это неприемлемо. Ведь если исходный код доступен заказчику, то он может его изменять в любое время и как ему вздумается. Так что для веб-разработок была возможна только одна модель продажи — за фиксированную сумму один раз (заказали скрипт — вы его написали и продали за заранее оговоренную сумму).

 

Конечно, такое ограничение было довольно неудобным и существенным сдерживающим фактором. И вот, компания Zend Techonogy, разработчик ядра Zend (на основе которого работает РНР 4 и 5) оригинально решила эту проблему, выпустив пакет Zend SafeGuard Suite (сейчас доступна версия 3.5). Эта программа позволяет регулировать доступ к вашим скриптам на РНР согласно лицензий — специальным файлам, в которых хранятся данные о правах доступа. Теперь имеется возможность использовать следующие модели распространения ваших скриптов:

  • ограничение по времени (работа до указанного срока или фиксированное количество суток);
  • лицензирование на основе одновременной работы некоторого количества пользователей (это больше подойдет для специальных сервисов и внутрикорпоративных порталов);
  • привязка к оборудованию сервера (генерируется специальный host-id, который уникален для каждого сервера и скрипт будет работать только на одном сервере);
  • привязка к IP-адресу сервера (или диапазону адресов).

    Что интересно, все эти методы можно комбинировать между собой в любом сочетании!

    Пакет Zend SafeGuard Suite включает в себя программы:

  • Zend Encoder — программный комплекс для кодирования скриптов;
  • Zend License Manager — программа для генерации лицензий.
  • Zend PHP Optimizer — серверный модуль, подключаемый к ядру РНР, который и работает с закодированными скриптами и лицензиями, а кроме того, отвечает за оптимизацию и повышения производительности сервера.
  • zendid.exe — утилита для генерации кода для привязки лицензии к определенной машине (аппаратному обеспечению сервера);
  • на выбор разработчику любой из 4-х способов лицензирования

    Подход компании Zend простой — скрипты из открытого вида (простой текст) утилитой Zend Encoder превращаются в закрытые двоичные файлы (которые уже нельзя просмотреть обычным текстовым редактором), а ядро PHP с модулем Optimizer выполняет обратную операцию раскодирования (предварительно «сверившись» с лицензией, допустимо ли исполнение скрипта) и исполняет оптимизированный код. PHP O
    ptimizer вообще очень интересный продукт — если он работает с простыми скриптами (не кодированными), то служит для оптимизации работы ядра, применяя различные алгоритмы кэширования и другие методы (подробнее можно прочитать тут). Подход такой — модуль Optimizer (а это, в принципе, одна библиотека) входит в каждый пакет от самой Zend (PHPWinEnabler, Zend Accelerator, Zend Performance Suite) а также доступен сам по себе совершенно бесплатно. А если учитывать, что SafeGuard Suite довольно дорогое решение, и если вы его покупаете, то очень желательно купить еще и один из пакетов для оптимизации — ведь быстродействия никогда не бывает слишком много, а преимущества от использования коммерческих пакетов оптимизации как говорится налицо.

    Работа с пакетом Zend SafeGuard Suite очень проста. Сначала надо подготовить файлы для кодирования. Все операции производятся через удобный интуитивных графический интерфейс, так что сложностей возникнуть не должно. Выбираете директорию с РНР-файлами, указываете конечную директорию и настройки преобразования. К настройкам относится задание способа включения PHP-кода (теги <? или ASP-стиль < %), настройка уровня оптимизации (он зависит от того, что именно ваши скрипты делают, разработчики предупреждают, что не все библиотеки и функции будут корректно работать после кодирования, для предотвращения проблем надо проводить тесты в каждом конкретном случае) и срок работы (действия лицензии) в виде конечной даты или количества дней. Все, после кодирования файлы будут уже в виде закрытого двоичного кода, а не простого текстового. Их уже нельзя редактировать, поэтому кодировать надо уже полностью отлаженную и работающую версию скриптов или, как выход, кодировать и лицензировать только ядро, часть функций, которые не будут изменятся при частичной переработке программы.

    А теперь надо сгенерировать лицензию, перейдя на вторую вкладку — «Zend license generator». Лицензия — это небольшой файл текстового содержания, который описывает условия распространения скрипта, при чем использовать лицензию от одного продукта для работы с другим не получится. Лицензия выглядит так:

    Product-Name = test
    Registered-To = raiden
    Hardware-Locked = No
    Expires = 02-Aug-2004
    Produced-By = Zend Encoder trial
    Verification-Code= 0Ga4MdoXNDCDT/AKrpiT5NF2kVvcAhUAhsXW6wF8Qeg4TwOwDMN94O0aN8Q=

    после кодирования PHP-скрипт превращается в двоичный файл

    Первая строка — название продукта, который вы защищаете, далее имя пользователя, Hardware-Locked указывает на то, используется ли привязка к аппаратному обеспечению сервера (для генерации host-id в комплекте есть специальная утилита). Expires указывает дату, до которой скрипт работоспособен (лицензия верна). И в последней строке указывается код верификации — специальным образом сгенерированная строка, которая и служит для однозначного сопоставления «скрипт — лицензия» и выявления случаев ручной корректировки файла лицензий. Лицензии хранятся в файле с расширением «.zl» и могут располагаться в любом месте на сервере. Для подключения лицензии к серверу необходимо редактировать опции в файле конфигурации PHP — php.ini. Пример:

    [zend] ; тут опции установленных компонентов Zend
    zend_optimizer.license_path=»D:\test.zl»

    Опция «zend_optimizer.license_path» указывает на файл лицензий, который будет применятся при работе с закодированными скриптами. Если вы держите на одном сервере разные сайты и каждому из них надо устанавливать свои лицензии, то тогда проще создать единую общую директорию для хранения лицензий, и записывать пути через разделитель (в Windows — «;», в Unix — «: «). К примеру, когда есть две лицензии, то задать их можно таким способом:

    zend_optimizer.license_path=»D:\test.zl;c\mylicense\license2.zl»

    Сервер сам опознает, какую лицензию к какому скрипту применять.

    В лицензиях можно задавать и собственные поля, к примеру, название компании-разработчика. Также есть возможность настроить вывод информации о том, что лицензия истекла, куда и к кому обратится за ее продлением. Этот блок информации задается при генерации лицензии и выводится в окно браузера при попытке доступа к скрипту, срок лицензии которого истек.

    Лицензия — это обычны

    Алексей Волков

    Предыдущий материал
    • PHP

    Новые возможности РНР 5

    • 11.08.2004
    • Алексей Волков
    Read More
    Следующий материал
    • Баннерные сети

    Что такое контекстная реклама

    • 24.08.2004
    • Алексей Волков
    Read More
    Вас также может заинтересовать
    Read More
    • Codeigniter

    Создание собственного обработчика 404 ошибок в CodeIgniter

    • jokar
    • 07.10.2012
    Read More
    • PHP
    • Готовые скрипты

    Загрузка нескольких файлов одним браузером

    • jokar
    • 14.06.2010
    Read More
    • PHP

    Переход на шаблонный дизайн

    • Алексей Волков
    • 10.02.2006
    Read More
    • PHP

    Экстремальный стиль для PHP

    • Алексей Волков
    • 29.12.2005
    Read More
    • PHP

    Секреты PHP-функций для работы с массивами. Обработка данных и сортиров

    • Алексей Волков
    • 15.11.2005
    Read More
    • PHP

    Секреты PHP-функций для работы с массивами. Создание массивов

    • Алексей Волков
    • 31.08.2005
    Read More
    • PHP

    PHP: секреты файла php.ini. Часть 4

    • Алексей Волков
    • 04.08.2005
    Read More
    • PHP

    PHP: секреты файла php.ini. Часть 3

    • Алексей Волков
    • 29.07.2005

    Добавить комментарий

    Для отправки комментария вам необходимо авторизоваться.

    Свежие посты
    • Дайджест постов Сергея Людкевича
      • 12.09.24
    • Как юристы тормозят бизнес
      • 30.08.24
    • Продвижение оптовых кампаний в Яндекс Директ
      • 06.03.24
    • Cарафанное радио
      • 13.01.24
    • 5-55: История компании
      • 01.03.23
    Маркетер
    • О проекте
    • Информационное спонсорство
    • Рекламным агентствам
    • Ссылки
    (с) ООО "Маркетер". Официальный сайт. Маркетер: Статьи про рекламу, маркетинг, public relations, интернет

    Введите ключевые слова для поиска и нажмите Enter