将C#/.网络浏览器能容易受到攻击?
-
22-08-2019 - |
解决方案
在大多数情况下,你是正确的。一个安全的类型系统(不仅仅是.NET或Java)应用程序不允许应用程序违反了这些限制。
缓冲区溢出和其他许多远程代码攻击发生,因为这些语言和运行时的约束提供任何检查,也不能保证程序不会做这样的事情在内存中执行任意代码。安全系统验证代码是从这些影响自由。
(作为边注,C#仍然可以执行不安全的操作,并设置本身最多执行任意代码。这只是相当麻烦的,不可能在实际应用中使用。)
您会在管理浏览器中看到的安全漏洞,如果它让任意代码被加载,使用CLR作为一个安全的环境会。虽然CLR生成的代码(即应用程序的这些JIT过)将是安全的,加载器和检验自己通常被写在一个较低的语言。还有的是数(我想2 .NET?)的安全漏洞,其中一个恶意形成的组件可能会迫使实际CLR执行任意代码。然而,这些是相对罕见的问题,并且表面积远小于它会是否则。
所以,是的,一个完全安全的,可管理浏览器本身不会堕入这些特定的攻击。但是,这也意味着你必须有你的插件编写和以类似的方式执行(闪光?)。最后,还有可以有针对性的其他安全漏洞,但通常他们会比你用非托管应用程序找到那么严重。跨站点脚本,例如,将仍然是一个问题。但至少不会有“查看文档可以执行arbitary代码”类型的问题。
其他提示
在CLR(和JVM)对大量的普通攻击后卫,但这并不能消除所有威胁。在CLR或任何库可能包含漏洞,允许攻击。应用程序错误可能允许攻击也是如此。 SQL注入是一种攻击是可能的,因为缺乏应用程序输入验证的例子。
不隶属于 StackOverflow