2009-04-29 2 views
7

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

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

+2

См. Http://stackoverflow.com/questions/475216/python-applications-can-you-secure-your-code-somehow. Другой язык, но такой же ошибочный подход. –

+1

Я прочитал ответы на этот вопрос, но это не то, что я хочу. Я знаю, что каждая вещь взламывается, но, по крайней мере, мы пытаемся сделать ее трудной. –

+0

Является ли этот запрос снизу от управления? –

ответ

5

Bill Karwin's answer был самым полезным из ответов на вопрос, упомянутый в комментариях. Предполагая, что вы продолжите «защиту», попробуйте сделать минимум. Все остальное имеет тенденцию сильно нарушать пользователей и приводит к снижению повторного бизнеса и/или увеличению желания взломать вашу расстраивающую систему.

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

+0

Это клиент-серверное приложение. Пользователи используют broswer как клиент. Сервер будет установлен в сети клиентов. Каждый пользователь будет иметь учетную запись, созданную их администратором, но до числа, за которое они купили лицензию. Если они достигают этого максимума и хотят получить больше лицензии, они могут просто купить его и обновить лицензию в своей системе и покинуть вас. –

+0

В этом случае я бы сказал, используя ключ лицензии, чтобы указать, что обрезание - это путь. –

3

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

0

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

FYI: Именно так Oracle имеет тенденцию работать со своим e-Business Suite. Вы можете изменить практически любой компонент, который вы хотите. Удачи вам в получении поддержки!

0

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

Смежные вопросы