gpt4 book ai didi

.net - 如何保护 .NET DLL

转载 作者:行者123 更新时间:2023-12-04 11:44:24 25 4
gpt4 key购买 nike

为您正在处理的项目保护 DLL 的最佳实践是什么?我有兴趣开发的某些 DLL 将具有数据访问层 (DAL) 和业务逻辑层 (BLL) 功能。可能有几个应用程序最终可以访问这些 DLL 以执行业务特定功能。

保护这些 DLL 以使其只能由创建者的应用程序使用的最佳方法是什么?

阻止未经授权使用 DLL 的安全性和防止可能的反编译的安全性都是可取的。

最佳答案

一种选择可能是将 DLL 中所有公开的类标记为“内部”而不是“公共(public)”,然后使用 "InternalsVisibleTo" DLL 中的属性以显式命名允许使用内部类型的 DLL(可能还有 exe)。这可能要求所有参与者都具有强名称,但无论如何这是一件好事。

归根结底,当你的代码在黑客的机器上执行时,没有绝对的方法可以阻止一个坚定的黑客访问你的代码。机器可以执行的所有代码都可以通过足够先进的工具和经验进行反汇编和重新组装成其他东西。

解决代码安全问题的最佳方法是提出这样一个问题:“我们想让某人在未经许可或授权的情况下使用此代码有多难,我们愿意花多少时间/金钱来实现这一目标?”如果您什么都不做,那么有人很容易在其他项目中使用您的 DLL。如果你做一些简单的事情,你可以让别人在别处使用你的 DLL 变得不方便。如果您投入数月的努力,您也许可以让别人很难滥用您的代码,但您永远无法做到这一点。

我可以想象的一种接近绝对安全的技术是:根本不要在客户端(或黑客)的机器上执行您的代码。改为运行 Web 服务,并将您的代码保存在服务器上,让黑客无法随意启动您的进程的调试器或反汇编您的代码。然后,您的代码安全性由服务器位置的物理安全性和对服务器端口的网络访问安全性定义。这些攻击向量比您对在黑客机器上执行的代码所能做的任何事情都难以规避几个数量级。

对于一些软件公司来说,将他们的部分应用程序从客户端迁移到云端并不是为了获得更好的可扩展性、更容易的更新或降低成本,而是为了代码安全和防止盗版。

关于.net - 如何保护 .NET DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4432138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com