在向客户交付 DLL(C# 项目)文件时,库的某些部分不属于客户应允许使用的接口的一部分。确实存在哪些安全机制来限制对公共接口的访问?
当然,可以将其他方法设置为private
, protected
, internal
,但最终,借助一些工具,我们总能访问这些方法。那么有没有真正的安全技术来防止这种情况发生呢?
在向客户交付 DLL(C# 项目)文件时,库的某些部分不属于客户应允许使用的接口的一部分。确实存在哪些安全机制来限制对公共接口的访问?
当然,可以将其他方法设置为private
, protected
, internal
,但最终,借助一些工具,我们总能访问这些方法。那么有没有真正的安全技术来防止这种情况发生呢?
由于这被标记为“C#”,我将不得不说“不,没有真正的安全机制来阻止用户访问这些功能。” .NET 二进制文件总是可以被反编译,即使被混淆了。
所有 .NET 客户端应用程序(winforms、Windows 服务、控制台等)也是如此,正如我不久前提出的一个类似问题所涵盖的那样。
引用所选答案:
换句话说,您必须考虑到桌面应用程序已完全受到威胁,如果这是一种风险,您必须将所有必须安全的内容(身份验证、授权、验证)提取到外部(Web)服务中。