发布MVC网站作为一个单一的DLL文件/加密



我的问题是:

我开发了一个MVC网站,目前使用标准方法发布,将放置文件&服务器内的文件夹。所有的dll文件都放在BIN文件夹下,内容和视图放在Content &视图文件夹。

问题是这个网站是为商业硬件设备(嵌入式windows操作系统)设计的管理面板,因此将视图和内容暴露为纯文本文件不能是一个选项,因为它会打开劫持/代码窃取的漏洞。甚至设备将被包装在一个密封的盒子里,任何购买它的人都可以打破这个盒子,当他们知道设备在windows环境中运行时,任何安全漏洞都可能发生,包括窃取视图代码以用于任何目的的复制/更改。

所以我需要保护MVC文件。我想如果MVC可以在安全的文件中发布,例如把所有的内容和视图放在dll文件中。

默认情况下,假设访问您的视图和dll的任何人都是受信任的。如果他们有你的文件,他们可以为所欲为。

根据HTML的本质,试图隐藏内容文件(如javascript和CSS)是没有意义的。这些文件无论如何都提供给客户端,因此它们总是可检索的。

如果你想把你的视图放入dll,你可以查看RazorGenerator

Visual Studio的自定义工具,允许在设计时而不是运行时处理Razor文件,允许将它们构建到程序集中,以便更简单地重用和分发。

请注意,您所做的是通过晦涩进行的安全性。

[…通过隐蔽性实现安全是使用保密性的设计或实现来提供安全性


标准组织不鼓励也不推荐通过模糊实现安全性。

MVC视图不应该包含业务逻辑,只应该包含格式化逻辑,就是这样。此外,由于c#代码被编译成中间语言(IL),任何人都可以逆转该过程并获得源代码。

在这种情况下,您需要一个混淆器来混合IL以使其难以被破解,但这并不能100%保证防止黑客对您的IL (DLL和exe)进行反向工程。

最好的办法是建立一个全面的方法来测试管理面板,并促进一个强大的更新过程,所以如果出现任何问题,你推你的更新尽可能快。

最新更新