Question

Lorsque je crée une application ASP.NET Azure, par niveau de confiance par défaut .NET est Confiance totale. Je change toujours à Windows Azure confiance partielle qui est similaire au niveau de la confiance moyen d'ASP.NET.

Vous pouvez le faire soit en utilisant l'interface graphique lorsque vous sélectionnez Propriétés sur le rôle ou en définissant enableNativeCodeExecution false dans le fichier de définition (.csdef) comme ci-dessous:

<WebRole name="ServiceRuntimeWebsite" enableNativeCodeExecution="false">

En tant que développeur de sécurité conscient que je veux par défaut pour exécuter mon application en mode confiance partielle qui fournit un niveau de sécurité plus élevé. Si je dois utiliser quelque chose comme réflexion ou P / Invoke, en tant que développeur, je veux prendre la décision d'abaisser ce niveau de confiance en moi-même.

Je suis sûr qu'il ya une raison pour laquelle Microsoft a décidé d'utiliser la confiance plein comme niveau de confiance par défaut .NET, je ne manquai pas de le voir. Si vous connaissez la raison, ou vous pensez que vous le savez, s'il vous plaît laissez-moi savoir.

Était-ce utile?

La solution

Confiance totale est non seulement nécessaire pour P / Invoke pour la réflexion .NET ainsi. Par conséquent la ligne du bas, presque toutes les applications de taille modérée ont besoin de confiance totale, car presque toutes les bibliothèques répandues ont besoin aussi (NHibernate par exemple). En fait, je demande de la question exacte face sur les forums Azure aussi.

Autres conseils

La question de la confiance totale ou partielle a trait à l'environnement dans lequel fonctionne votre application. Plus de contrôle et / ou la « propriété » de l'environnement et des assemblées que vous avez, plus acceptable, il est d'avoir des paramètres de confiance totale.

Par exemple, si vous créez un site Web Azure (Juillet capacité 2012) et, mimant wordpress ou Umbraco, votre site web permet aux greffons d'assemblage arbitraires à télécharger et installer, alors il est important d'avoir un environnement partiellement confiance. Il est possible que l'un des plug-ins téléchargés et exécutés, que vous ne contrôlez pas ou propres, contient des logiciels malveillants. Non seulement cet impact la sécurité et la stabilité de votre site web, mais certains pourraient faire valoir son impact sur les autres (multi-locataires) hébergés sites Web qui ont aucun rapport avec le vôtre.

Certes, votre site web repose sur des bibliothèques 3ème partie, comme Log4Net ou StructureMap, mais ce sont des bibliothèques extrêmement bien connues et approuvées qui ne sont pas en cause quant à leur impact sur la sécurité. Ergo, si vous utilisez un Web rôle Azure (une affaire beaucoup moins de type « multi-locataire ») et vous êtes simplement en cours d'exécution comme « confiance » des applications 3ème partie, alors il n'y a vraiment pas un problème avec l'exécution en pleine confiance.

Oui, malheureusement, il est encore très difficile (voire impossible) d'écrire des applications .NET grandes qui fonctionnent en fiducie partielle.

Nous avons besoin de beaucoup mieux la technologie et des outils (comme CAS.NET)

Parce que moyen confiance est maintenant officiellement obsolète. Si vous démarrez un nouveau projet Web dans Visual Studio, il faut déjà la pleine confiance (et ne fonctionne pas confiance partielle). Microsoft dit: Ne comptez pas sur Medium Trust, à la place, utiliser la pleine confiance, et isoler les applications peu fiable dans des pools d'applications distincts

.

Sources:

Stackoverflow réponse: réponse Quoted équipe ASP.NET

Microsoft: ASP.NET confiance partielle ne garantit pas l'isolement de l'application

Microsoft: développement Web ASP.NET meilleures pratiques

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top