gpt4 book ai didi

c# - InternalsVisibleTo - 如何防止某人创建具有相同名称的程序集并访问内部类或方法?

转载 作者:太空宇宙 更新时间:2023-11-03 17:08:04 25 4
gpt4 key购买 nike

最近,我遇到了使内部类和方法对其他程序集可见的 InternalsVisibleTo 方法。虽然这在拥有一大堆程序集并且希望避免循环依赖或代码重复的应用程序中非常有用,但我们中的一些人认为这可能会暴露安全漏洞。你有什么想法?

例如,如果我有这样一个属性:

[程序集:System.Runtime.CompilerServices.InternalsVisibleTo("foo")]

即使它被隐藏在 assemblyInfo.cs 文件中,也可以通过反汇编等方式发现它。并不是每个人都签署或混淆他们的程序集。现在,有了可能有更多功能可供使用的信息,我可以创建自己的名为 foo.dll 的程序集,然后使用我以前无法使用的方法/类。

最佳答案

这里没有安全漏洞,因为公共(public)/私有(private)区别与安全无关。出于安全原因,成员不是“隐藏”为私有(private)成员,而是出于设计原因。任何人都可以通过反射找到您所有的私有(private)方法并直接调用它们,即使未设置 InternalsVisibleTo

关于c# - InternalsVisibleTo - 如何防止某人创建具有相同名称的程序集并访问内部类或方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28323133/

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