我创建了一个供医院使用的软件解决方案。它使用 PHP / MySQL,无法编译成二进制文件。一家有意获得该软件许可的医院要求将 PHP 代码托管在他们自己的服务器上,这样几位服务器管理员就可以有效地访问此源代码。这显然是我不能接受的。我的反建议是,我们将源代码托管在我们自己的公司服务器上,但由于临床数据泄露的风险,他们也不想采用这种方式。
我对您以下选项的想法很感兴趣 - 以及是否有其他可行的方法:
选项 1:将我公司拥有并运营的服务器放在医院的安全防火墙后面,只有我们才能访问该服务器。这可以保护源代码,同时降低医院的风险。他们基本上可以对该服务器进行防火墙保护,这样就不会有数据离开医院。我采访过的网络管理员不喜欢这个选项,因为他们使用统一的网络架构,不想再添加其他服务器。这个回复对我来说没有多大意义。
选项 2:与 Amazon Web Services 或其他双方均可接受的基于云的平台签订合同来托管 PHP 代码。这确实意味着临床数据将离开医院进行处理,因此这种风险可能不如选项 1 可取。
选项 3:我还遗漏了其他选项吗?
谢谢。
答案1
选项 3:使用 ioncube 加密代码。这可以防止逆向工程或篡改,并允许您直观地分配许可证(并在屏幕上打印许可证持有者)。
客户端可以在任何需要的地方运行这些内容,但 ioncube 使管理员无法改变它。
答案2
您的选项 1 对我来说似乎是最好的,但它的成本可能比您想象的要高,一些医院需要特殊的令牌才能进入 VPN 来访问某些资源,因此他们可能会将该部分卖给您,因为他们肯定也有代理,所以您的服务器也会很难连接。
如果他们愿意的话,也可以部署 OVH 或 VM。
不要忘记您的选项 1,保护您的代码免受新来者的侵害,但事实上服务器托管在现场,根本无法保护它,让服务器以恢复模式启动来复制文件。
答案3
在 AWS 上托管的选择并不一定意味着更多的风险。首先,如果您遵循所有最佳实践,AWS 可以很好地保护其硬件和您的信息。如果您使用 VPN 网关将 VPC 链接到医院网络并从 VPC 中删除所有其他 Internet 连接,那么它可以像它所连接的医院网络一样孤立。
您也可以在非医院的主机托管设施中托管,但坦率地说,对于一台服务器来说,这需要做更多的工作。从财务角度来看,这可能也不是一个积极的选择。
就源代码可访问性而言,您可以考虑签署一份禁止在其他地方转让/重复使用该软件的许可协议。虽然安全性并不完美,但许多软件开发人员通过提供额外服务和更新的限时许可协议赚钱。