5

我正在用 asp/c# 构建一个网站,我需要将它部署到由外部人员管理的多个服务器上。

我需要避免有权访问服务器的人访问和重用我们的代码。

到目前为止,我听到的一种选择是我可以检查代码中的 MAC 地址,但是,用户可以更改 MAC 地址。

避免这种情况的最安全选择是什么?

4

6 回答 6

3

您有多种选择,但正如许多人所评论的那样……也许它们不值得。

  • 法律:让在您的服务器上工作的外部人员签署保密协议。
  • 受信任的外部人员:雇用您信任的人。朋友、老同事等。
  • 虚拟服务器:根据您希望外部人员完成的工作,您可能会创建应用程序的虚拟版本。例如,如果您希望外部人员安装和配置您的 IIS 和 WCF 服务,则只部署不执行任何操作的 WCF 服务的虚拟版本。稍后,在外部人员完成工作后,您可以将您的虚拟代码替换为真实代码。
  • 混淆代码:您可以使用一些工具来混淆您的代码以使其更难。(更难并不意味着不可能)
  • 拿走你的代码:正如Mahmoud Fayez建议的那样,将你的代码带到一些外部 Web 服务并让你的 UI 完全没有任何逻辑可能是可行的。然而,这取决于外部人员将为您做什么以及您的应用程序的确切细节。

唯一可靠的是:

  • 部署到您自己的服务器:如果您的代码非常敏感,以至于您想保证没有人复制它,那么您自己做这些事情。对于有足够时间和动力的程序员来说,没有任何管理任务是足够困难的
于 2013-02-28T08:16:29.403 回答
2

唯一 100% 可靠的方法是不允许其他人访问实际部署的文件。

由于代码必须首先工作,因此无论您做什么,一个有足够动力的破解者都会获得底层源代码。

您可以审核您的部署文件夹,以便拥有访问日志:您不会阻止任何交互,但您至少会知道谁得到了什么......总比没有好。

于 2013-02-28T08:04:04.390 回答
1

为您提供最大控制权的选项:不要部署由外部人员管理的外部服务器。

其他一切都将有更少的选择来保护您的代码,您只需要确定可以支付的价格。

于 2013-02-28T08:04:31.367 回答
0

Web 应用程序通常不能完全“关闭”源。

除了bin中编译好的DLL(可以混淆)外,视图页面(.aspx,.ascx,.master,.cshtml)中必须有一点“开源”

如果您希望 100% 关闭,您可以考虑使用非标准方式来提供视图,以便您可以将所有内容打包在 DLL 中并编写您的 http 处理程序代码来处理不同的 URL。

于 2013-02-28T08:35:51.120 回答
0

您可以“发布”该网站,而不是将整个源代码放在服务器上,从而将其变成一个已编译的网站。

你可以在这里找到指南

于 2013-02-28T08:04:58.783 回答
0

如果你需要这样做,这表明你在公司层面做错了什么。最好的程序通常不是试图阻止盗版,而是接受它。让任何人都可以轻松获得代码,如果需要,可以自己在种子网站上播种,但只能让它以非常受限的方式运行 - 例如,一次只能连接一个连接,因此注册和购买许可证显示出明显的优势。

如果您的许可证也清晰且价格合理,那么就没有盗版软件的动机,预防总比治疗好。

于 2013-02-28T09:02:02.190 回答