避免在部署的c#asp网站中窃取代码

时间:2013-02-28 07:59:17

标签: c# asp.net security

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

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

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

有哪些最安全的选择可以避免这种情况?

6 个答案:

答案 0 :(得分:3)

你有几个选择,但正如许多人评论的那样......也许它们不值得。

  • 法律:让在您的服务器中工作的外部人员签署保密协议。
  • 值得信赖的外部人员:雇用您信任的人。朋友,老同事等
  • 虚拟服务器:根据您希望外部人员完成的操作,您可以创建应用的虚拟版本。例如,如果您希望外部人员安装和配置您的IIS&然后,WCF服务仅部署不执行任何操作的WCF服务的虚拟版本。之后,在外部人员完成工作后,您可以用真实代码替换您的虚拟代码。
  • 混淆代码:您可以使用某种工具对代码进行模糊处理,以使其更难处理。 (哈尔并不意味着不可能)
  • 删除您的代码:正如 Mahmoud Fayez 建议的那样,将代码带到某些外部网络服务并使您的UI完全没有任何逻辑可能是可行的。但这取决于外部人员将为您做什么以及您的应用程序的具体细节。

唯一可靠的是:

  • 部署到您自己的服务器:如果您的代码非常敏感,并且您希望保证没有人复制它,那么请自行处理。 没有管理员任务对于有足够时间和动力的程序员来说已经够难了

答案 1 :(得分:2)

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

由于代码必须首先工作,无论你做什么,一个充满动力的破解者都将获得潜在的来源。

You can audit your deploy folders所以你有一个访问日志:你不会阻止任何互动,但你至少知道谁得到了什么......总比没有好。

答案 2 :(得分:1)

为您提供最多cotrol的选项:不要部署由外部人员管理的一个外部服务器。

其他所有内容都没有更少的选项来保护您的代码,您只需要决定价格是否可以支付。

答案 3 :(得分:0)

您可以'发布'网站,而不是将整个源代码放在服务器上,然后将其转换为已编译的网站。

您可以找到指南here

答案 4 :(得分:0)

网络应用通常无法完全“关闭”。

除了bin中编译的DLL(可以进行模糊处理)之外,视图页面中必须有一些“开源”(.aspx,.ascx,.master,.cshtml)

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

答案 5 :(得分:0)

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

如果您还使您的许可证清晰且价格合理,并且没有动机盗取您的软件,并且预防总是比治愈更好。