Attention :
Des versions plus récentes de .Net et de .Net core ont supprimé et/ou modifié le "Code Access Security" (CAS) depuis que cette question a été posée.
Question originale :
Je suis en train d'étudier pour le 70-536 .NET Framework - Examen de base du développement d'applications Comme je programme .net depuis de nombreuses années, cela ne devrait pas être difficile !
Cependant, je dois apprendre ce qu'est la "sécurité d'accès au code" (CAS). Comme je n'ai jamais eu besoin de l'utiliser ou de la configurer, je me demandais si quelqu'un d'autre l'avait utilisée dans la vie réelle ?
Veuillez fournir des exemples de cas où vous avez utilisé le CAS et où il a fait partie de la solution plutôt que du problème.
(Jusqu'à présent, tout le reste avait un rapport avec les tâches que j'ai dû accomplir au cours de mes années de programmation .NET).
Questions connexes :
- Pourquoi utiliser le CAS (Code Access Security) ? - Il y a très peu d'exemples concrets, à part la façon dont Microsoft l'utilise.
- Quelqu'un utilise-t-il vraiment la sécurité d'accès au code pour protéger ses assemblages et/ou méthodes ?
- Qu'est-ce que la sécurité d'accès au code dans .NET - Définit bien le CAS, mais ne donne pas d'exemples concrets.
- . NET de sécurité d'accès au code : Utile ou simplement trop compliquée ?
Résultats jusqu'à présent.
-
CAS est utile lorsque vous hébergez du code tiers. Par exemple, une société d'hébergement web peut l'utiliser pour empêcher le code Asp.net de ses clients d'endommager les serveurs. (Office l'utilise également lorsque .NET est utilisé en remplacement de VBA).
-
Les seuls exemples détaillés de son utilisation en dehors d'une application Microsoft sont jusqu'à présent :
Un projet récent que j'ai fait avait quelque chose similaire : permettre à l'utilisateur de télécharger une bibliothèque, et la tester pour ses performances ("qui fait le meilleur algorithme"). Inutile de dire que nous avions besoin de CAS fortement là.
-
Le CAS semble être utile pour obtenir la certification JITDC, qui est comme le département de la défense des États-Unis, mais je ne sais pas si le CAS a été d'une réelle utilité, ou s'il s'agissait simplement de cocher des cases.
(Si vous devez contourner un hôte qui utilise CAS et que vous avez des droits d'administrateur sur cette machine, vous pouvez simplement placer vos assemblages dans le GAC).
Je suis impatient, CAS est un peu moins complexe dans .net 4 .
Au moins, il semble que les nouveaux examens de Microsoft ne comporteront pas d'examen "de base" incluant le CAS. Je ne sais pas s'il sera intégré aux nouveaux examens Winforms/WPF.
2 votes
J'ai eu la même réaction en préparant cet examen ; mon opinion est qu'il s'agit d'un élément clé du cadre .NET en interne, utilisé par Microsoft pour combler de nombreuses failles de sécurité, et qu'ils l'ont exposé pour que d'autres personnes puissent l'utiliser également. Mais je ne l'ai jamais utilisé moi-même, et je ne connais personne qui l'ait utilisé dans une application commerciale.
0 votes
Le CAS a une surface énorme. Il est probable qu'il contienne beaucoup de bogues de sécurité. Les bogues JIT, par exemple, peuvent contourner le CAS. Consultez GitHub CoreClr pour voir combien de bogues JIT il y a. CAS est une barrière de sécurité de type "best effort". Un attaquant suffisamment motivé peut le surmonter. L'exécution de code non fiable à l'aide de CAS est très dangereuse.