硬编码Web应用程序(ASP.NET)的到期日期?

时间:2012-05-10 13:56:05

标签: c# asp.net security iis

假设您要上传“测试版”,并且您有信任问题。 您将如何添加到期日期?

我考虑过硬编码到期日 - 但是任何人都可以反编译/重新编译.NET dll。

然后我想也许我应该让应用程序迭代它自己的文件并删除它们。但是,IIS工作程序将在删除重要的dll后停止,我们将无法删除其他dll。更不用说我们需要在包括BIN在内的所有文件夹上设置写权限。

嗯......有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可能希望将日期用作代码内部的一些有意义的输入变量,例如使用“ticks over threshold”来计算可伸缩性的一些计划减少,所有这些都设置在不同的时间阈值,引入延迟等。如果你把它们放在几个地方并用注释.cs标记,那么你可以很容易地在需要时删除它们,但是从一个dll中删除它太昂贵了。

答案 1 :(得分:1)

在某处添加硬编码日期检查,并在obfuscate添加您的应用程序。

<强>更新

我不会说在混淆的程序集中找到日期检查很容易,特别是如果你使用一些商业工具。当然,这不是100%安全,我没有任何经验调试/破解混淆的程序集,但花了一些时间谷歌搜索商业混淆器和他们可以做什么。

除此之外你可以使用你的应用程序运行连接到互联网的事实,你可以检查一些外部资源,当然这很容易被嗅探,但你可以编写你的应用程序的一些重要部分是一些脚本放在那里在其他服务器上加密的脚本。然后您的应用程序应该下载,解密并执行该脚本,因此如果您从远程服务器中删除它,那么重现该功能将非常困难。第三方有可能下载该脚本并在不可用时提供该脚本,请注意这一点。也许您可以使用Rosyln并使用您的c#代码而不是该脚本。

我没有做任何类似的事情,也许还有一些问题,这只是让我想到的事情,所以如果你想这样做,请做你的研究:)