WEB开发网
开发学院图形图像Flash CLR 全面透彻解析: 使用 CoreCLR 编写 Silverligh... 阅读

CLR 全面透彻解析: 使用 CoreCLR 编写 Silverlight

 2008-10-26 11:49:13 来源:WEB开发网   
核心提示: 透明代码只能调用其他透明代码或 SafeCritical 代码,而 SafeCritical 代码可以代表用户代码调用关键代码,CLR 全面透彻解析: 使用 CoreCLR 编写 Silverlight(4),SafeCritical 代码需要将输入规范化或调整为标准格式,净化关键代码的输

透明代码只能调用其他透明代码或 SafeCritical 代码,而 SafeCritical 代码可以代表用户代码调用关键代码。SafeCritical 代码需要将输入规范化或调整为标准格式,净化关键代码的输出以保护系统的安全性(参见图 1)。

CLR 全面透彻解析: 使用 CoreCLR 编写 Silverlight

图 1 CoreCLR 中的安全执行机制

将输入规范化为关键代码的情况要比净化输出的情况更简明易懂。例如,如果我的 Web 应用程序需要在本地磁盘上写入一个文件,则使用独立存储即可实现此操作。但是,如果您不希望此应用程序写入名为“........bootmgr”的文件中,就必须确保输入的格式正常、规范。认为关键代码的输出存在安全风险的情况非常罕见。主要的安全概念是,控制信息泄露在减小受到攻击者各种类型的攻击方面起着至关重要的作用。假如我尝试访问系统上的一些用户信息,获得的响应是“权限被拒绝”。但作为另一个用户重复相同的访问操作时,我获得的响应是“用户 Bob 不存在”。如果我知道会获得这两种响应,重复尝试无效访问就可以获得系统上的用户名列表。

简化的安全策略为使用 .NET 代码的开发人员带来了极大的便利,同时也有助于开发人员研究 .NET 代码。我们已尽可能少地使用关键代码和 SafeCritical 代码了。如果使用的大部分都是透明代码,将有助于减少需要我们进行深入安全检查的代码的数量。虽然仍要检查透明代码的正确性和安全性,但至少我们清楚这些代码不会执行任何特权操作。许多 Silverlight 大型部件(包括动态语言运行时 (DLR))都是全部使用透明代码编写的。通过限制 Silverlight 的特权部件,我们可以将精力集中到确实需要仔细检查的领域,从而提高所交付的产品的安全性。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:CLR 全面 透彻

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接