Utilizar bibliotecas de código que no es de plena confianza

NotaNota

En este tema se trata el comportamiento de los ensamblados con nombre seguro y se aplica solo a los ensamblados de nivel 1.Los ensamblados Código transparente en seguridad, nivel 2 en .NET Framework versión 4 o posterior no se ven afectados por los nombres seguros.Para obtener más información sobre los cambios hechos en el sistema de seguridad, consulte Cambios de seguridad en .NET Framework 4.

Las aplicaciones que no reciben plena confianza de su host o de su espacio aislado no pueden llamar a bibliotecas administradas compartidas a menos que el escritor de la biblioteca permita específicamente a dichas aplicaciones usar el atributo AllowPartiallyTrustedCallersAttribute. Por tanto, los escritores de aplicaciones deben tener en cuenta que algunas bibliotecas no están disponibles en un contexto de confianza parcial. De forma predeterminada, todo el código que se ejecuta en un espacio aislado de confianza parcial y no está en la lista de ensamblados de plena confianza es de confianza parcial. Si no espera que el código se ejecute en un contexto de confianza parcial ni vaya a ser llamado por código de confianza parcial, no tiene que preocuparse por la información de esta sección. Sin embargo, si escribe código que debe interactuar con código de confianza parcial o funcionar en un contexto con ese nivel de seguridad, deberá tener en cuenta los siguientes factores:

  • Para poder compartir las bibliotecas entre varias aplicaciones, se deben firmar con un nombre seguro. Los nombres seguros permiten agregar el código a la memoria caché global de ensamblados o a la lista de plena confianza de un espacio aislado AppDomain y permiten a los consumidores comprobar que un fragmento de código móvil determinado procede realmente de usted.

  • De forma predeterminada, las bibliotecas compartidas de nivel 1 con nombres seguros realizan una LinkDemand implícita para obtener automáticamente plena confianza, sin que el escritor de la biblioteca tenga que hacer nada.

  • Si un llamador no tiene plena confianza y, aun así, intenta llamar a dicha biblioteca, el motor en tiempo de ejecución produce una excepción SecurityException y el llamador no podrá vincularse a la biblioteca.

  • Para deshabilitar la LinkDemand automática e impedir que se produzca una excepción, puede colocar el atributo AllowPartiallyTrustedCallersAttribute en el ámbito de un ensamblado de una biblioteca compartida. Con este atributo se puede llamar a las bibliotecas desde código administrado de confianza parcial.

  • El código de confianza parcial al que se concede acceso a una biblioteca mediante este atributo sigue estando sujeto a otras restricciones definidas por AppDomain.

  • Mediante programación no se puede conseguir de ninguna forma que código de confianza parcial llame a una biblioteca que no tenga el atributo AllowPartiallyTrustedCallersAttribute.

Las bibliotecas que son privadas para una aplicación específica no requieren un nombre seguro ni el atributo AllowPartiallyTrustedCallersAttribute, y no es posible hacer referencia a esas bibliotecas en posibles códigos malintencionados fuera de la aplicación. Este código está protegido contra el uso indebido, ya sea intencionado o involuntario, por parte de código móvil de confianza parcial, sin que el programador tenga que hacer nada más.

Se debe considerar la posibilidad de habilitar el uso explícito de código de confianza parcial para los siguientes tipos de código:

  • Código que se ha probado minuciosamente en puntos vulnerables de la seguridad y que se atiene a las instrucciones descritas en Instrucciones de codificación segura.

  • Bibliotecas de código con nombres seguros escritas específicamente para escenarios de confianza parcial.

  • Componentes (ya sean de confianza parcial o de plena confianza) firmados con un nombre seguro a los que se llamará mediante código descargado de Internet.

NotaNota

Algunas clases de la biblioteca de clases de .NET Framework no tienen el atributo AllowPartiallyTrustedCallersAttribute y no pueden ser llamadas por código de confianza parcial.Vea Ensamblados de .NET Framework marcados con AllowPartiallyTrustedCallersAttribute para obtener una lista de las clases a las que se puede llamar mediante código de confianza parcial.

Vea también

Conceptos

Seguridad de acceso del código

Historial de cambios

Fecha

Historial

Motivo

Julio de 2010

Actualizaciones menores al contenido.

Corrección de errores de contenido.