服务器计算机中的不安全WAR

时间:2011-11-25 03:11:50

标签: java security web-applications war

我要在服务器机器中部署我的webapp(WAR)。但是,服务器机器在客户端手中,并且它们采用数据库转储(因此可以创建新数据),并且可以从tomcat webapp目录复制WAR文件。操作系统是Windows。如果他们能够复制我的WAR并创建数据库,他们可以在其他地方使用它。我该如何保护这个? JNI?别的什么?如果JNI,聪明的方式是什么?

2 个答案:

答案 0 :(得分:2)

说真的,如果你不能信任运行运行你的软件的服务器的人,那么就没有可行的技术解决方案可以阻止他们窃取它并在其他地方运行它。

所有已知技术"修复" (例如,混淆,加密的类,许可管理器,以及#34;打电话回家"等)只会让那些坏人的有点更难。他们都可以相对容易地击败。 IMO,他们不值得努力以及他们为您和/或您的客户带来的技术问题。

您最好的方法是合法的方法:

  • 让您的律师帮助您与客户签订合同,明确禁止他们对您的软件进行逆向工程,修改,以您不想要的方式运行,等等。 / p>

  • 让客户同意合同。

  • 监控他们正在做的事情(在可能的范围内),如果他们看起来违反了合同......那就是他们。

即使这不是保证,但它应该让您的客户再次想到窃取您的东西。

答案 1 :(得分:0)

可能的解决方案:

  1. 使用代码混淆库。这将使代码看起来很复杂,以防它们尝试反编译它(如果它们需要改变任何东西)。这通常是您需要购买的软件,当您在调试实时系统时尝试查看异常时,有时会使事情变得复杂。
  2. 在代码中包含检查,以防止在未找到某些“隐藏”环境变量(或其他)的情况下运行应用程序。
  3. 与您的客户签订合同,明确要求他在其他地方窃取和使用您的应用/代码。
  4. 解决方案#3是最常见的。