我想提供一个已安装的Web应用程序的虚拟机映像。 用户应该能够启动虚拟机(不要login,只需启动),一个networking服务器应该自动启动。
关键是我想隐藏所有人的Web应用程序的(ruby)源代码,因为没有ruby的混淆器。
我以为我可以使用文件系统encryption来encryption与源代码(甚至整个分区)的目录。 但是web服务器用户必须能够在启动后自动读取它。 没有人被允许作为networking服务器用户(或任何其他用户)login,所以没有其他人可以阅读的内容。
我现在的问题是:
问题是所有需要解密的东西都必须包含在虚拟机的某处,否则networking服务器无法自动启动。 也许我是完全错误的,你有另一个提示保护源代码。
快速谷歌search说,有ruby混淆器 – 第一个我碰到:
这也是电影制片厂和音乐制作公司遇到的同样的问题。 我们如何让人们不用他们不需要的产品就能“使用”我们的产品(在他们的情况下,观察和/或倾听,执行)。 你需要DRM。
但是,正如MPAA和RIAA所了解的那样,无论你做什么,总是要把关键点交给最终用户 – 无论你如何混淆它,不pipe你对它有什么要求。 即使每次使用不同的密钥都不起作用,或者需要设备与远程服务器“签入”。
相反,我build议你看看你想要encryption的原因。 也许你会更好地服务于不同的模式,而不是无用的捍卫代码。 软件即服务,也许,你在哪里运行虚拟机? 他们支付更新应用程序使用的数据的订阅模型? 在合同基础上提供所需支持的支持模式?