gpt4 book ai didi

c# - C# Windows 服务的安全性

转载 作者:行者123 更新时间:2023-11-30 21:05:04 25 4
gpt4 key购买 nike

我知道在 Java 中运行的 Windows 服务在安全级别上存在缺陷,因为这意味着 JVM 在服务线程中运行,因此增加了潜在威胁的数量。

C# 呢?C# 在 CLR ( Common Language Runtime) 上运行,所以当我说它也可能导致一些严重的安全漏洞时我错了吗?

最佳答案

好吧,CLR 实现了多项安全措施,以实际提供额外的安全层并避免 JVM 的一些陷阱。

首先,您的代码是您自己的,它将按原样执行,不会像 Java 那样在虚拟机上解释和运行。当您在 .NET 中生成程序集或 exe 文件时,您将获得 IL 代码,即中间语言代码。

然后,IL 被及时编译为机器代码,然后执行该机器代码。没有虚拟机解释它,一旦代码被编译为特定机器的汇编程序,它就会像用标准语言编写的任何其他程序一样执行。

当您执行 .NET 程序时,程序上的第一条指令实际上加载了 CLR,后者依次查找程序的主入口点并开始执行。 CLR 加载程序位于 mscorlib.dll 中,后者又位于 GAC 中。 .

现在,GAC 本身确实包含一些安全措施,最重要的是位于 GAC 中的程序集(当然包括来自 Microsoft 的程序集)是强命名的,换句话说,它们是签名的。

Microsoft 保留他的私钥并为任何版本的 .NET Framework 的每个程序集签名,然后在 GAC 上安装时,根据 Microsoft 公钥检查该签名以查看它们是否匹配。当您使用 Visual Studio 引用 .NET Framework 版本时,该过程会自动为您完成,尽管它可以在编译期间通过命令行显式完成。

简而言之,不,它不会导致相同的安全漏洞。

关于c# - C# Windows 服务的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11904941/

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