gpt4 book ai didi

c# - C#/.Net 网络浏览器是否容易受到攻击?

转载 作者:太空狗 更新时间:2023-10-30 00:29:19 25 4
gpt4 key购买 nike

说 .Net 平台更安全是因为 CLR 可以防止缓冲区溢出攻击吗?

假设有一个网络浏览器在托管操作系统(如 CosmosSharpOSSingularity)中运行,攻击者在技术上是否有可能将 IL 代码注入(inject)应用程序?

我是否需要担心非托管应用中不可能发生的攻击?

最佳答案

在大多数情况下,您是对的。具有安全类型系统(不仅仅是 .NET 或 Java)的应用程序不允许应用程序违反这些约束。

缓冲区溢出和许多其他远程代码攻击的发生是因为这些语言和运行时中的约束不提供检查并且不能保证程序不会执行诸如在内存中执行任意代码之类的事情。安全系统验证代码不受这些影响。

(附带说明,C# 仍然可以执行不安全的操作,并将自己设置为执行任意代码。它只是相当笨重,不太可能在实际应用程序中使用。)

您会在托管浏览器中看到的安全漏洞是,如果它允许加载任意代码,使用 CLR 作为安全环境。虽然 CLR 生成的代码(即应用程序的 JIT)是安全的,但加载程序和验证程序本身通常是用较低语言编写的。存在一些(我认为 .NET 有 2 个?)安全漏洞,恶意形成的程序集可能会迫使实际的 CLR 执行任意代码。然而,这些都是相对罕见的问题,而且表面积远小于其他情况。

所以,是的,一个完全安全的托管浏览器本身不会成为这些特定攻击的牺牲品。但这也意味着您必须以类似的方式(Flash?)编写和执行您的插件。最后,还有其他可以作为目标的安全漏洞,但通常它们没有您在非托管应用程序中发现的那么严重。例如,跨站点脚本仍然是一个问题。但至少你不会有“查看文档可以执行任意代码”类型的问题。

关于c# - C#/.Net 网络浏览器是否容易受到攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/696307/

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