对 DCOM 代理和存根进行分类

DCOM 通过构造包含 CLSID 的 OBJREF 来封送对象引用。 这些 CLSID 容易受到安全攻击,因为在封送期间会加载任意 DLL。 但是,调用 CoInitializeSecurity 时可以指定 EOAC_NO_CUSTOM_MARSHAL 标志(请参阅 EOLE_AUTHENTICATION_CAPABILITIES)。 使用 DCOM 时,设置此标志有助于保护服务器安全性,因为它会降低执行任意 DLL 的概率。 设置此标志后,服务器仅允许封送在 ole32.dll、comadmin.dll、comsvcs.dll 或 es.dll 中实现的 CLSID,或者实现 CATID_MARSHALER 类别 ID。

CATID_MARSHALER 是一个组件类别 GUID,可与正在自定义封送的 CLSID 相关联。 当通过 CoInitializeSecurity 设置 EOAC_NO_CUSTOM_MARSHAL 时,允许使用此 CLSID 自定义封送的接口。

组件类别