Как создать защищенное лицензионное приложение Java EE?

Мы разрабатываем приложение Java EE, поддерживаемое любой базой данных по выбору клиента.

Мы будем продавать клиентам, основываясь на цене лицензии для каждого пользователя. Как мне убедиться, что приложение используется в соответствии с нашими условиями, то есть не легко взломать? Есть ли какие-либо учебные пособия?

4 ответа

Решение

Ответ Билла Карвина был самым полезным из ответов на вопрос, упомянутый в комментариях. Предполагая, что вы будете действовать по схеме "защиты", попробуйте сделать минимум. Все остальное имеет тенденцию сильно расстраивать пользователей и приводит к снижению количества повторных сделок и / или увеличению желания взломать вашу расстраивающую систему.

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

Если вы можете запутать - это путь для начала. Но это может быть больно, если вы используете инверсию управляющих структур (например, пружины). Я слышал, что можно также запутать весенний контекст, но никогда не пробовал. Также (только догадка) могут быть некоторые сюрпризы с отражениями, динамическими прокси и тому подобным. Что касается лицензирования, я могу предложить использовать TrueLicense. Он имеет очень гибкие средства обработки различных аспектов защиты, а также бесплатные пробные периоды из коробки. Работает очень хорошо и имеет отличную документацию.

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

К вашему сведению: именно так Oracle стремится работать со своим пакетом электронного бизнеса. Вы можете изменить практически любой компонент, который вы хотите. Удачи в получении поддержки!

Посмотрите, как Atlassian продает свою продукцию. Я считаю, что это подход, который работает очень хорошо, и, вероятно, будет для вас тоже. Примечание: подписка на обновления должна быть добавлена!

Другие вопросы по тегам