代码之家  ›  专栏  ›  技术社区  ›  janetsmith

是否值得混淆Java Web应用程序?[关闭]

  •  8
  • janetsmith  · 技术社区  · 15 年前

    是否值得混淆Java Web应用程序?为什么呢?

    8 回复  |  直到 14 年前
        1
  •  10
  •   Luke Schafer    15 年前

    不。代码存储在服务器上,外部用户(希望)无法访问它。如果您认为Javascript值得(最小限度的)IP保护,那么您可能需要混淆它。

    最好的办法是确保服务器安全性达到标准,并且您没有对应用程序目录的开放访问权限(无论如何都不应该这样做)。

        2
  •  5
  •   Stephen C    15 年前

    国际海事组织,没有。

    混淆有两个主要的用例:

    1. 保护代码中嵌入的访问控制“秘密”(例如密码),以及
    2. 以防有人窃取你的“知识产权”。

    问题是,混淆只能挫败半心半意的逆向工程尝试。认真的尝试总是会成功的。对一个模糊的JAR文件进行反编译其实并不难,而且有很多工具可以用来做这件事。

    对于上面的用例,更好的模糊方法是:

    1. 只是不要在代码中嵌入秘密,
    2. 下列一种或两种:
      • 保护您的网络服务器,使黑客无法获取代码,以及
      • 不要将您认为有价值的IP代码发送给他人,或者如果您这样做了,那么只能将代码发送给签署了具有法律约束力的合同/许可协议的人,以保护您的IP权利。
        3
  •  3
  •   Yishai    15 年前

    唯一会混淆Java Web应用程序的场景是,如果您将代码提供给客户,以在其服务器上运行。否则,这只是浪费时间和额外的复杂性。

    模糊化的目的是让某人更难对您的字节代码进行反编译并从中获得有用的代码。要做到这一点,他们必须能够访问您的类文件,这一点只有在您将它们交付给客户时才存在,而不是在他们远程访问时。

        4
  •  2
  •   daveb    15 年前

    我想补充一点,您应该有一个很好的理由,因为混淆会使调试更加困难。

        5
  •  2
  •   Community CDub    7 年前

    你可能会找到答案 Do you obfuscate your commercial Java code? 相关的。

        6
  •  2
  •   OscarRyz    14 年前

    是否值得混淆Java Web应用程序?

    它取决于

    为什么呢?

    如果您正在授权将Web应用程序安装到客户的网站上,并且不希望客户通过反编译来重用您的代码 * 然后 它是。

    如果你在为你的网络应用服务,而安装只能从你那里获得,我会说 它不是 值得的。最好是增加你的网络安全。

    *见斯蒂芬C评论

        7
  •  1
  •   3Dave    14 年前

    绝对可以。

    如果您的开发过程是正确的,那么服务器上只需要二进制文件和一些支持文件(例如标记和样式表)。没有充分的理由 在任何生产环境中混淆二进制文件。

    其他人说这样做会给员工带来问题。唯一应该了解或关心二进制文件内容的人是开发人员——他们有源代码,所以他们不应该关心搜索编译后的对象。

    我能看到的唯一原因是,任何没有访问源代码的人都会对二进制代码的内容感兴趣,这将是逆向工程——并且您的员工中没有人会对逆向工程您自己的产品感兴趣,除非他们没有访问源代码的权限。这意味着它们或者没有清除代码,或者您丢失了代码,这意味着您的源代码控制系统要么很糟糕,要么完全丢失了。那是完全不同的对话。

    我还没有听到任何实际的服务器端混淆的例子,这些混淆会导致开发或管理困难。

        8
  •  -2
  •   ChrisLively    14 年前

    把你的 服务器 侧码?我会毫无保留地答应。

    事实是 end user 只有一个群体可能有邪恶的计划。总是太频繁 internal 员工,无论他们是 business users , support staff 等等,也可能有自己的计划。或制造 unwitting accomplices .

    如果处理任何需要密码才能访问的信息,则 责任 利用你所使用的每一种工具来保护这些信息。

    这包括保护它不受外部和 internal 人。由于内部人员访问过多,公司一直都会失去数据和知识产权。这些人是故意窃取信息还是 simply lost control of their computers due to hacker attacks 是无关紧要的。

    所以,再一次,是的,一个步骤是混淆,希望获得二进制文件的人在弄清楚应用程序如何工作方面有困难。当然,您应该更进一步地保护它所在的服务器;而不仅仅是 production 但是一路回到 source control .