我有一个ASP .NET应用程序,我们提供给客户,让他们将它部署到他们的Web服务器中并使用它。我担心的是我的所有ASPX页面源代码都是开放的 我们的客户可以打开ASPX / CS文件并查看其中的代码。
我希望通过实施15-20天的试用期限来保护我的代码,就像Windows应用程序一样。另一方面,源代码必须有一些第三方dll,这样每当他们尝试部署新版本时,它只能在有限时间内使用。
我们客户的付款条件是First Source Code,然后是Payment。因此,我正在思考一些双方的信仰保持原样。我怎么能这样做?
答案 0 :(得分:2)
发布您的Web应用程序,以便将文件后面的所有代码编译成dll。通过这种方式,他们无法轻松查看您的代码。但是,他们可以使用反射来使用jetBrains dotPeeek等工具查看代码。
最佳选择 自己托管网站,但由于这不回答你的问题,这里有一些其他的选择
第一个选项
如果客户端坚持托管网站,因为他们协商拥有数据,然后允许他们托管网站和数据库,但从您可以控制的集中托管网站获取功能。你甚至可以提供api。
您在web.config中为客户端提供哈希代码,并根据您的站点对其进行验证。 哈希由以下内容组成:
加密Web服务的请求和响应,并通过ssl发送。
客户端哈希将在请求中发送。使用相同的字段构建新哈希,并根据从客户端收到的哈希对其进行验证。如果它无效,则不提供该功能。
谷歌地图要求您注册并获取哈希码,因为如果您滥用谷歌地图API,他们可以终止您使用谷歌地图API。
第二个选项
另一种选择是设置对您托管的站点的Web服务调用。
然后,部署的已编译Web应用程序将使用您的Web服务的响应构建一个哈希,并将生成的哈希与您在响应中发送的哈希相匹配。
这意味着如果客户端阻止流量到您的Web服务或试图伪造响应,那么应用程序将停止工作。
还添加一些逻辑来提醒您,如果他们试图伪造响应。如果他们阻止对您的Web服务的调用,这显然不会起作用。
您不会在此处包含salt,因为如果他们反编译您的代码,客户端就可以阅读它们。
第三个选项 在web.config中添加两个字段:
如果客户更改了到期日以允许他们有更多时间,那么它将无法验证并且将被锁定。
Opion 2和3允许客户端如果他们真的想要反向设计哈希码。
=====================================
我真的没有看到它的需要但是如果你想要你可以使用其他帖子中提到的一些阻塞工具来使客户端更难以阅读你的代码。但即使他们能够读取您的代码,他们也无法自己创建有效的哈希代码。
答案 1 :(得分:0)
DotFuscator社区版是一种可能性,但它可能对您的需求来说太基础了。
我建议你看看市场上的商业混淆器。这是我通过简单的Google搜索找到的一些列表。 (不推荐任何这些工具。)
答案 2 :(得分:0)
我建议你查看.NET Reactor和Intellilock。 .NET Reactor会阻止编译代码的反编译,但是对于aspx,我不确定它是如何工作的,因为它需要预编译。 Intellilock将提供设置到期时间的功能。我已经使用了标准的可执行文件,但从未使用ASPX,因此我不确定它们是否会有所帮助。