Question

Le manque de réflexion dans les environnements d'hébergement moyen fiducie semble causer beaucoup de problèmes pour de nombreuses applications web les plus populaires.

  • Pourquoi ReflectionPermission désactivé par défaut avec Medium Trust?
  • Quel risque réflexion pose dans un environnement d'hébergement partagé?

Pour référence aléatoire, consultez MSDN: Comment utiliser Medium confiance dans ASP.NET 2.0

Était-ce utile?

La solution

La réflexion permet le code malveillant d'inspecter toutes sortes de secrets: pas tant la propriété intellectuelle (bien sûr, aussi), mais les données qui doivent être privées et sécurisées, comme les chaînes de connexion, les mots de passe, données bancaires, etc ..

Bien sûr, de nombreux programmes exposent ces données comme une évidence même à travers des vecteurs plus-facilement compromis, mais il n'y a aucune raison d'augmenter la surface d'attaque d'une application.

Sous la direction d'apporter un peu de la conversation à partir des commentaires:

Il est probablement vrai que le risque réel est sans restriction d'accès au système de fichiers, qui est ce qui transforme la réflexion en un réel danger. Si un mauvais acteur peut obtenir un ensemble (ou quelque chose qui est compilé dans un ensemble) dans votre répertoire virtuel, vous êtes en difficulté si elles ont l'autorisation de réflexion. (Bien sûr, si cela se produit, il y a d'autres problèmes potentiels aussi bien, mais cela ne devrait pas écarter cette vulnérabilité particulière.)

Dans un environnement d'hébergement partagé qui est juste plus difficile à éviter, mais il est certainement pas impossible. Peut-être est cross-posting vaut cette question ServerFault pour voir ce que les bonnes gens ont-t-il à dire.

Autres conseils

Je ne l'ai jamais trouvé quoi que ce soit « mauvais » qu'un utilisateur sera en mesure de le faire en utilisant la réflexion. Les gens sont effrayés parce que vous êtes en mesure d'appeler des méthodes qui sont marqués comme privés ou protégés, mais de ce que je l'ai vu, aucun d'entre eux imposent tout risque réel.

Très probablement, il est au moins en partie une technique de vente pour vous aider à débourser pour (semi-) hébergement dédié:)

Je trouve l'article MSDN suivant à ce sujet:

Considérations sur la sécurité pour la réflexion

La réponse de l'écho de cet article Jeff:

  

La réflexion permet de   obtenir des informations sur les types et   membres et aux membres d'accès.   Accès aux membres non publics pourraient   créer un risque de sécurité. Donc,   code qui accède à des membres non publics   exige ReflectionPermission la   drapeaux appropriés.

Cependant, je ne crois pas que ce risque peut être exploitée entre les comptes d'hébergement du client. Il semble que cela ne ferait que poser un risque personnel. Par exemple, en utilisant la réflexion que je pouvais explorer mes propres assemblées dans mon environnement d'hébergement. D'autres clients, cependant, ne pouvaient pas utiliser la réflexion pour explorer mes assemblées. Ils ne pouvaient explorer leur assemblées.

Cela pourrait poser un problème pour une seule application Web qui implique plusieurs équipes de développement. Une équipe de développement pourrait utiliser la réflexion pour explorer les assemblées d'une autre équipe de développement.

Cependant, ceci est un scénario rare pour un environnement d'hébergement partagé. La plupart des sites d'hébergement mutualisé web impliquent une très petite équipe qui ont accès à tout le code . En d'autres termes, il n'y a pas de secrets. Tant que l'assemblage est à l'abri des autres clients d'hébergement mutualisé, il est pas un problème.

L'activation de la réflexion ne devrait pas poser de risque pour l'hébergement le plus partagé des applications web:

<IPermission class="ReflectionPermission" version="1" Flags="RestrictedMemberAccess"/>

S'il vous plaît me corriger si je me trompe.

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