.NET 指南:汇编集装载包装

本文讨论了通过Assembly.Load等方法装载被管理代码时的安全风险。若这些方法被不当包装,可能会导致安全系统的许可批准出现问题,使得不可信代码有机会装载比调用者更高级别的代码,从而威胁整体安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一些方法被用来装载被管理代码,包括 Assembly.Load,它们会以调用者的意图来装载汇编集。如果你包装了这些方法中的任何一个,那么安全系统就会使用你的代码许可批准,替代对你的包装器进行调用的调用者许可来装载这些汇编集。所以你不应该允许几乎不被信任的代码来装载比你的包装器调用者拥有更高级别的代码。

任何拥有完全信任或者比潜在的调用者(包括互联网许可级别的调用者)拥有更要高级别的信任的代码都有可能削弱安全性。如果你的代码拥有一个获取字节数组并且把它传递给 Assembly.Load 的公开方法,因此为调用者的利益而创建一个汇编集,那么它就有可能破坏到安全性。

这个问题适用于下列 API 元素:

  • System.AppDomain.DefineDynamicAssembly
  • System.Appdomain.Load
  • System.Reflection.Assembly.LoadFrom
  • System.Reflection.Assembly.Load

转载于:https://www.cnblogs.com/Laeb/archive/2007/02/09/646063.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值