Seguridad y protección de tipos

Actualización: noviembre 2007

El código seguro de tipos sólo tiene acceso a las ubicaciones de memoria para las que tiene autorización. A efectos de esta descripción, la seguridad de tipos se refiere concretamente a la seguridad de tipos en memoria y no debe confundirse con la seguridad de tipos en un sentido más amplio. Por ejemplo, el código seguro de tipos no puede leer valores de los campos privados de otro objeto. Sólo puede obtener acceso a tipos siguiendo métodos permitidos y perfectamente definidos.

Durante la compilación Just-in-time (JIT), un proceso opcional de comprobación examina los metadatos y el lenguaje intermedio de Microsoft (MSIL) de los métodos a compilar a código máquina nativo, para comprobar si tienen seguridad de tipos. Este proceso se omite si el código tiene permiso para evitar la comprobación. Para obtener más información sobre comprobación, vea Compilar MSIL a código nativo.

Aunque la comprobación de la seguridad de tipos no es obligatoria para la ejecución de código administrado, la seguridad de tipos desempeña un papel crucial en el aislamiento del ensamblado y la exigencia de seguridad. Cuando el código tiene seguridad de tipos, Common Language Runtime puede aislar totalmente ensamblados entre sí. Este aislamiento ayuda a garantizar que los ensamblados no puedan ejercer influencias negativas entre sí y aumenta la confiabilidad de la aplicación. Los componentes seguros de tipos se pueden ejecutar de forma segura en el mismo proceso aunque dispongan de confianza en diferentes niveles. Cuando el código no tiene seguridad de tipos, pueden producirse efectos secundarios no deseados. Por ejemplo, el motor en tiempo de ejecución no puede evitar la llamada de código no administrado en código nativo (no administrado) ni la realización de operaciones malintencionadas. Cuando el código tiene seguridad de tipos, el mecanismo de exigencia de seguridad del motor en tiempo de ejecución garantiza que no tiene acceso a código nativo salvo que tenga permiso explícito para ello. El código sin seguridad de tipos debe haber obtenido permiso SecurityPermission con el miembro de enumeración SkipVerification transferido para la ejecución.

Vea también

Conceptos

Escribir código seguro comprobable

Otros recursos

Conceptos clave de seguridad