Partager via


Sécurité de type et sécurité

Le code de type sécurisé accède uniquement aux zones de la mémoire dont l'accès lui a été autorisé (dans le cadre de cette présentation, la sécurité de type fait spécifiquement référence à la sécurité de type de la mémoire ; elle est différente de la sécurité de type dans un contexte plus large). Par exemple, le code de type sécurisé ne peut pas lire les valeurs figurant dans les champs privés d'un autre objet. Il accède aux types de manière bien précise, et uniquement s'il en a l'autorisation.

Durant la compilation juste-à-temps (JIT, Just-In-Time), un processus de vérification facultatif examine les métadonnées et le langage MSIL (Microsoft Intermediate Language) d'une méthode devant être compilée en code machine natif à l'aide d'une compilation JIT, afin de s'assurer qu'ils sont de type sécurisé. Ce processus est ignoré si le code est autorisé à outrepasser la vérification. Pour plus d'informations sur la vérification, consultez Compilation du MSIL en code natif.

Bien que la vérification de sécurité de type ne soit pas obligatoire pour exécuter du code managé, la sécurité de type joue un rôle essentiel dans l'isolation de l'assembly et la mise en place de la sécurité. Lorsque le code est de type sécurisé, le Common Language Runtime est en mesure d'isoler totalement les assemblys les uns des autres. De cette manière, il les empêche de se nuire et il optimise la fiabilité de l'application. Les composants de type sécurisé peuvent être exécutés en toute sécurité dans le même processus, même lorsqu'ils sont d'un niveau de confiance différent. Lorsque le code n'est pas de type sécurisé, des effets secondaires imprévus risquent de se produire. Par exemple, le runtime ne peut pas empêcher du code non managé d'effectuer des appels dans du code natif (non managé) et d'exécuter des opérations nuisibles. Lorsque le code est de type sécurisé, le mécanisme de sécurité du runtime veille à ce qu'il ne soit pas en mesure d'accéder à du code natif sans autorisation préalable. Tout code qui n'est pas de type sécurisé doit avoir obtenu une autorisation SecurityPermission, avec le membre d'énumération SkipVerification à exécuter.

Voir aussi

Concepts

Écriture de code de type sécurisé vérifié

Autres ressources

Concepts fondamentaux sur la sécurité