15

我想将我的 webapp 从 cloudfoundry 迁移到 heroku。但是我仍然对一件事感到困惑。

每次您想将应用程序部署到 heroku 时,您都必须将源代码推送到他们的 git 存储库。这个存储库有多安全?如果我不想把我的源代码交给别人怎么办?

你对此有何看法?

4

3 回答 3

16

问题

您不了解解释语言或托管服务提供商的工作方式。如果您使用 Ruby 之类的解释型语言,则需要在服务平台上提供源代码。即使您的代码被压缩、混淆或字节编译,它也必须在服务平台上才能提供服务,所以这对于任何语言或托管服务提供商来说都是一个问题。

您也不了解字节码的本质。字节码解释器可以读取您的文件。此外,还有 Java 反编译器可以将字节码转换回源代码。搜索 Stack Overflow 将显示讨论 Java 反编译器的帖子。除非你认为“通过默默无闻的安全”是有用的,否则你应该停止认为你的字节码以任何有意义的方式是安全的。

解决方案

  1. 构建好的软件,经营好的业务,不要因为担心有人抄袭你的 for 循环而失眠。这可能是您最简单的解决方案。
  2. 如果您不信任托管服务提供商或托管设施,那么您将不得不在内部托管自己的文件。即使那样,您也必须信任某人来维护系统,除非您打算自己做这一切。
  3. 考虑一些锡箔小百货。

Herku 上的 Git 存储库不像您在 GitHub 上找到的公共存储库。它与通过任何其他方式传输文件一样“安全”,并且肯定比许多服务平台上通常的 FTP 上传更安全。

安全始终是一种权衡。这绝对很重要,但除非您定义了比一般不信任更好的威胁模型,否则您将无法开发足够的控制。

于 2012-06-20T10:24:21.887 回答
3

这取决于

衡量“安全”的原因,您必须考虑可能的“风险”。从这样的平台窃取源代码的调查值得吗?那么,人们可以从您的源代码中获得多少价值?

我认为没有人通过简单地窃取源代码而真正成功。它更多的是关于窃取想法。维护和扩展您没有编写的代码是很困难的。您将需要时间来熟悉源代码(月/年,取决于代码库)。浪费了所有的时间和精力。学得快的高手也可以从零开始,说不定最终会得到更好的结果。

  • Facebook 发布战略、论文和技术见解。那里有很多 Facebook 模仿者,没人在意。

  • 您的业​​务取得成功不仅与软件有关。重要的部分是对产品的品牌忠诚度/信任度、用户体验和可见的整体成功。

  • 与在 Heroku 上运行的数千个应用程序相比,为什么您的源代码如此特别。甚至很难在所有这些好东西之间找到你的存储库。成功的事情和失败的事情,没有人知道。

但是,如果一些单一的技术算法您的核心业务(加密软件、图形驱动程序算法......)并且它们很容易被采用,那么窃取它可能是值得的。

数据与代码

您可以担心的事情:在哪里存储敏感的客户信息?大多数人对出售有关您的业务和客户的电子邮件地址、电话号码、姓名、财务信息有更大的兴趣。但是,……如果你没有足够的敏感数据,你就没有兴趣。那么,您的应用程序是否包含 1 亿个 Sony Network 信用卡帐户?;)

好的,如果应用程序包含 iPhone 5 和 6 的所有蓝图、数据、秘密想法和设计,它可能也会很有趣。

于 2012-06-21T08:48:52.277 回答
2

您正在使用某人的服务来运行您的应用程序。无论您使用什么服务,如果不将您的代码提供给他们,就无法做到这一点。即使您忘记了云并托管自己的服务器,它仍将掌握在运行您的数据中心的人员手中。

于 2012-06-20T08:56:02.127 回答