Небезопасная WAR на сервере - PullRequest
1 голос
/ 25 ноября 2011

Я собираюсь развернуть мое веб-приложение (WAR) на сервере.Но серверный компьютер находится в руках клиентов, и они получают дамп базы данных (чтобы можно было создавать новые данные), и файл WAR можно скопировать из каталога tomcat webapp.ОС - это Windows.Если они могут скопировать мою WAR и создать базу данных, они могут использовать ее в другом месте.Как я могу защитить это?JNI?Что-то другое?Если JNI, какой умный способ?

Ответы [ 2 ]

2 голосов
/ 25 ноября 2011

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

Все известныетехнические «исправления» (например, обфускация, зашифрованные классы, менеджеры лицензий, «звонок домой» и т. д.) только усложняют работу злоумышленников немного .Все они могут быть сравнительно легко побеждены.ИМО, они не стоят усилий и сопутствующих технических проблем, которые они вызывают для вас и / или вашего клиента.

Ваш лучший подход - юридический:

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

  • Попросите клиента согласиться с договором.

  • Контролируйте, что они делают (насколько это возможно), и, если кажется, что они нарушают договор ... SUE THEM.

Даже это не гарантия, но это должно заставить вашего клиента подумать о краже ваших вещей.

0 голосов
/ 25 ноября 2011

Возможные решения:

  1. Использовать библиотеку обфускации кода.Это заставит код выглядеть сложным в случае, если они попытаются декомпилировать его (в случае, если им нужно что-то изменить).Обычно это программное обеспечение, которое вам нужно купить, и иногда оно усложняет ситуацию, когда вы пытаетесь просмотреть исключительную ситуацию при отладке работающей системы.
  2. Включите в свой код проверки, которые препятствуют запуску приложения в случае некоторых "скрытая »переменная среды (или что-либо еще) не найдена.
  3. Установите контракт с вашим клиентом, который явно запретит ему воровать и использовать ваше приложение / код в другом месте.

Solution #3 является наиболее распространенным.

...