我有一个 ASP.Net 应用程序,托管在我的公司客户内部网络的 Web 服务器上。

我希望执行各种已知的许可条款(到期日期/用户数量等)

我计划使用包含术语作为键/值对的加密 xml 文档,并将其作为加密的平面文本文件存储在 Web 服务器上。

然后,我计划使用自定义安全 Httpmodule 来解密加密文件 并将条款提取并存储在内存中(应用程序?),然后在应用程序相关区域的每个页面请求期间强制执行这些条款。

是否有更好的方法来执行 Web 应用程序的许可条款?

有帮助吗?

解决方案

我选择了一条不同的路线:我只是将许可信息放在数据库的加密字段中,这样我就不必担心 Httpmodule。SQL Server 具有 EncryptByKey 和 DecryptByKey 函数,可以轻松获取/放置加密数据。我还使用了一个简单的密码密钥,使整个过程非常易于管理。我很欣赏你的方法——这真的很聪明——但我认为你让自己的生活变得有点太困难了!

就安全性而言,只要您实际上不提供源代码,这就是相对安全的。唯一的缺点是他们可能会反汇编您的代码以尝试提取密码或其他加密技术(这也可能适用于您的 Httpmodule 方法)。这是 不是 然而,我担心的是,因为我主要与财富 500 强公司合作,并且我与他们签订了法律协议,其中包括“禁止拆卸”条款。绝大多数公司根本不会冒险这样做,因为这样做可能会带来法律风险,只是为了获得一些额外的功能或扩展他们的数据库。另一方面,如果您要分发给数千名匿名用户,情况可能会有所不同。

更新:如果您不使用 SQL Server,您还可以使用某种形式的基于代码的加密来保存/检索您的许可信息。如果您需要加密类,我上传了一个简单但极其强大的 AES 类 之前的回答.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top