Поделиться через


Практическое руководство. Обеспечение недоступности сборок APTCA для не вполне надежного кода

Атрибут AllowPartiallyTrustedCallersAttribute (APTCA) позволяет не вполне надежному коду получать доступ к полностью надежному коду в подписанных сборках. При применении атрибута APTCA к сборке, она помечается как допускающая не вполне надежные вызывающие объекты на весь срок жизни сборки. Это может привести к уязвимости системы безопасности, если после установки сборки она открывает доступ к защищенным ресурсам со стороны не вполне надежного кода. Решением этой проблемы может служить задание значения реестра, указывающее, что атрибут APTCA для данной сборки следует игнорировать.

Важное примечаниеВажно

Возможность снятия частичного доверия со сборки обеспечивается с помощью раздела реестра, как описано в следующей процедуре.Если приложение выполняется под учетной записью, не имеющей разрешения списка контроля доступа (ACL) на доступ к этому разделу реестра, его параметр не будет учитываться и не вполне надежные вызывающие объекты смогут получить доступ к сборке. Это приведет к непреднамеренному повышению прав доступа.Необходимо настроить права ACL для данного раздела так, чтобы к нему могла получить доступ любая сборка.

Снятие частичного доверия со сборки

  1. В разделе 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.

  2. Создайте значение DWORD с именем APTCA_FLAG и значением, равным 1, чтобы снять частичное доверие со сборки.