- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
说 .Net 平台更安全是因为 CLR 可以防止缓冲区溢出攻击吗?
假设有一个网络浏览器在托管操作系统(如 Cosmos、SharpOS 或 Singularity)中运行,攻击者在技术上是否有可能将 IL 代码注入(inject)应用程序?
我是否需要担心非托管应用中不可能发生的攻击?
最佳答案
在大多数情况下,您是对的。具有安全类型系统(不仅仅是 .NET 或 Java)的应用程序不允许应用程序违反这些约束。
缓冲区溢出和许多其他远程代码攻击的发生是因为这些语言和运行时中的约束不提供检查并且不能保证程序不会执行诸如在内存中执行任意代码之类的事情。安全系统验证代码不受这些影响。
(附带说明,C# 仍然可以执行不安全的操作,并将自己设置为执行任意代码。它只是相当笨重,不太可能在实际应用程序中使用。)
您会在托管浏览器中看到的安全漏洞是,如果它允许加载任意代码,使用 CLR 作为安全环境。虽然 CLR 生成的代码(即应用程序的 JIT)是安全的,但加载程序和验证程序本身通常是用较低语言编写的。存在一些(我认为 .NET 有 2 个?)安全漏洞,恶意形成的程序集可能会迫使实际的 CLR 执行任意代码。然而,这些都是相对罕见的问题,而且表面积远小于其他情况。
所以,是的,一个完全安全的托管浏览器本身不会成为这些特定攻击的牺牲品。但这也意味着您必须以类似的方式(Flash?)编写和执行您的插件。最后,还有其他可以作为目标的安全漏洞,但通常它们没有您在非托管应用程序中发现的那么严重。例如,跨站点脚本仍然是一个问题。但至少你不会有“查看文档可以执行任意代码”类型的问题。
关于c# - C#/.Net 网络浏览器是否容易受到攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/696307/
所以我试图让(例如)输入一些值:1 -2 -3 2 5正数的数量是 5 负数的数量是 -3总计为 3 平均值为 0.6我想让它像这样,但是当我运行它时,它不起作用哪一部分是错误的??? import
我编写了一个使用 OpenCV 的 cvCalcOpticalFlowLK 的程序。它在低分辨率网络摄像头输入上表现良好,但我需要在全高清流上运行它,并在对每一帧进行光流分析后进行重要的其他计算。处理
如果我有一个 ruby 脚本 Daemon,顾名思义,它作为守护进程运行,监视系统的各个部分并能够执行需要身份验证的命令,例如更改权限,是否存在一个简单的方法来拥有第二个 ruby 脚本,比如
我们有一个基于 Ant 和 Ivy 的构建管理系统,它基本上由一个共享的 ant 文件和一组围绕目录结构的约定组成。 我试图克服的一个障碍是相当常见的“递归发布”情况。比如说,我们有 5 个内部代码模
我在嵌入式 Linux 环境中遇到了问题。尝试确定它是否可以由应用程序引起。应用程序导致内核崩溃/锁定或终止 init 有多容易? 最佳答案 非根应用程序应该不可能影响任何一个。 以 root 身份运
我目前正在尝试学习 Nim(进展缓慢 - 无法投入太多时间)。另一方面,为了获得一些工作代码,我想对我正在 ruby 中开发的 Nim 应用程序的各个部分进行原型(prototype)设计。 由于
我是一名优秀的程序员,十分优秀!