是否有可能在ASP.net应用程序中嵌入试用限制?

本文关键字:有可能 ASP net 应用程序 是否 | 更新日期: 2023-09-27 18:09:36

我有一个asp.net应用程序,我们给我们的客户,让他们部署在他们的web服务器和使用它。我担心的是我所有的ASPX页面源代码都是开放的我们的客户端可以打开ASPX/CS文件并查看其中的代码。

我想通过实现15-20天的试用限制来保护我的代码,就像Windows应用程序一样。另一方面,源代码必须有一些第三方的dll,这样当他们试图部署新的构建时,它将只在有限的时间内可用。

与我们的客户的付款条件是,首先源代码,然后付款。所以我在想,介于两者之间,双方的信仰都保持原样。我该怎么做呢?

是否有可能在ASP.net应用程序中嵌入试用限制?

发布您的web应用程序,以便将文件后面的所有代码编译成dll。这样他们就不容易看到你的代码。然而,他们将能够使用反射来使用诸如jetBrains dotpeek之类的工具查看代码。

最佳选择自己托管网站,但这不能回答你的问题,这里有一些其他的选择

<<p> 1选项/strong>

如果客户端坚持托管站点,因为他们一致同意拥有数据,那么允许他们托管站点和数据库,但从您控制的集中托管站点中提取功能。你甚至可以提供一个api。

在web上为客户端提供一个哈希码。配置,这得到验证针对您的网站。哈希值由:

组成
  • presalt
  • web服务地址
  • 有效期
  • 客户机uniqueidentifier
  • 您想要的任何其他信息
  • postsalt

加密web服务的请求和响应,并通过ssl发送。

客户端散列将在请求中发送。构建具有相同字段的新散列,并根据从客户端收到的散列验证该散列。如果无效,则不提供该功能。

谷歌地图要求你注册并获得一个哈希码,因为如果你滥用它,他们可以终止你对谷歌地图api的使用。

<<p> 第二选项/strong>

另一个选择是设置对您托管的站点的web服务调用。

部署的编译web应用程序将使用来自web服务的响应构建一个哈希,并将生成的哈希与您在响应中发送的哈希进行匹配。

这意味着如果客户端阻止流量到您的web服务或试图假冒响应,那么应用程序将停止工作。

还添加一些逻辑来提醒您,如果他们试图伪造响应。如果他们阻塞了对你的web服务的调用,这显然是行不通的。

您不应该在这里包含盐,因为如果客户端反编译您的代码,他们可以读取它们。

<<p> 第三选项/strong>在web.config中添加两个字段:
  • 为客户端生成的哈希码

如果客户端更改有效期以允许他们有更多的时间,那么它将不有效,并且他们将被锁定。

选项2和3将允许客户端逆向工程哈希码,如果他们真的想。

=====================================

我不认为有必要这样做,但是如果你想的话,你可以使用一些混淆工具,比如在另一篇文章中提到的,让客户端更难阅读你的代码。但是,即使他们能读懂你的代码,他们也不应该自己创建一个有效的哈希码。

我建议你看看。net Reactor和Intellilock. . net Reactor会防止编译代码的反编译,但是对于aspx,我不确定这将如何工作,因为它需要预编译。Intellilock将提供设置过期时间的功能。我在标准可执行文件中都使用过,但从来没有使用过ASPX,所以我不确定它们是否有帮助。

链接:http://www.eziriz.com/

DotFuscator Community Edition是一种可能性,但是对于您的需求来说它可能太基础了。

我建议你看看市场上的商业混淆器。以下是我通过谷歌搜索找到的一些。(这是而不是对这些工具的推荐)

  • 。Red Gate软件的。NET模糊器(我过去用过他们的Reflector工具,效果很好)
  • 你可以自己做。查看这个StackOverflow线程。
  • MSDN上的一个线程
相关文章: