我在一家医疗行业的小公司工作。我们有一个自制的管理软件,经过重新编写后,我们将出售给其他类似的公司。该软件基于用 PHP 编写的 HTTP API。由于我们不想泄露我们的代码,我们目前正在检查我们应该用哪种技术重写它。
我的问题是:您将如何实现一个 HTTP API 守护程序,它可以相对简单地安装在 Linux 机器上,而不会泄露您的代码?
框架和语言
有很多优秀的语言和框架可用于构建 Web 应用程序。如果您正在寻找一种(某种)编译语言,您可能会考虑在 Java 中做一些事情,可能使用Spring或Play 框架(免责声明:play 框架仍然相对较新,尽管它很受欢迎,但可能并不理想适合所有人,因为它在野外仍然相对未经测试)。我还听说过 C# 和ASP.NET的 Mono 项目实现已经取得了长足的进步,尽管我没有使用它,也不能保证它。
在编写 Web 服务时,我倾向于更喜欢 Python 和 Ruby 等解释型语言。尽管这些可能不适合您的用例。Go是个例外,它最近已成为我的最爱之一。它非常容易学习、高效且非常快速(并且可以编译)。
帮助我们帮助您
不幸的是,你的问题几乎是无可救药的模糊,所以我很难给出一个好的建议。也许您会考虑改写它,列出您的一些要求、目标和目的,以便我们可以更多地了解从长远来看什么对您最有利?
无关的肥皂盒警告!
稍微偏离主题,我总是鼓励我签约的公司(尤其是在技术上往往落后的医疗行业等领域)考虑更开放的商业模式。许多小公司试图通过创建一个封闭的生态系统来保护他们的知识产权,从长远来看,这会扼杀增长和创新,并可能使他们面临重大的安全漏洞;开源并没有成为蓬勃发展的计算机科学行业的新趋势,因为它允许人们窃取彼此的产品。它之所以流行,是因为它比传统的封闭源代码实践更便宜、更可持续。我主张通过适当的许可和法律手段保护您的源代码,而不是坚持传统的分发方法。不像很多人,我认为专有软件仍然占有一席之地。由您决定您的产品是否适合该模型。但是,至少要考虑替代方案的利弊,即使您最终认为它不适合您的业务模式。非肥皂盒
您可以将代码保存在 php 中并以几种不同的方式保护它:
当然,最后两个对管理层来说很难卖。但这取决于您的业务和技术目标。
如果您打算重写代码,那么防止他人窃取您的源代码的最佳保护(法律限制除外)可能是二进制编译的语言,如 C 或 C++。Java 可以很容易地被反编译,尽管有一些混淆器可以让它变得毫无意义。还有各种其他语言的打包机制(例如 perl PAR 存档、python py2exe 或 tcl tclkits),这使得查看源代码稍微困难一些,但这些主要是为了简化分发,而不是为了保护代码免受恶意攻击眼睛。