Практическое руководство. Обеспечение недоступности сборок APTCA для не вполне надежного кода
Атрибут AllowPartiallyTrustedCallersAttribute (APTCA) позволяет не вполне надежному коду получать доступ к полностью надежному коду в подписанных сборках. При применении атрибута APTCA к сборке, она помечается как допускающая не вполне надежные вызывающие объекты на весь срок жизни сборки. Это может привести к уязвимости системы безопасности, если после установки сборки она открывает доступ к защищенным ресурсам со стороны не вполне надежного кода. Решением этой проблемы может служить задание значения реестра, указывающее, что атрибут APTCA для данной сборки следует игнорировать.
![]() |
---|
Возможность снятия частичного доверия со сборки обеспечивается с помощью раздела реестра, как описано в следующей процедуре.Если приложение выполняется под учетной записью, не имеющей разрешения списка контроля доступа (ACL) на доступ к этому разделу реестра, его параметр не будет учитываться и не вполне надежные вызывающие объекты смогут получить доступ к сборке. Это приведет к непреднамеренному повышению прав доступа.Необходимо настроить права ACL для данного раздела так, чтобы к нему могла получить доступ любая сборка. |
Снятие частичного доверия со сборки
В разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\APTCA системного реестра создайте новый раздел. Используйте имя ключа, содержащее сведения о строгом имени для сборки. Оно должно включать простое имя, номер версии, язык и региональные параметры (могут быть нейтральными), маркер открытого ключа и версию файла сборки. Так, следующий раздел является допустимым: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\APTCA\Microsoft.Office.Interop.Visio, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, FileVersion=11.0.3216.0.
Создайте значение DWORD с именем APTCA_FLAG и значением, равным 1, чтобы снять частичное доверие со сборки.