Frage

Die mangelnde Reflexion in mittleren Vertrauens -Hosting -Umgebungen scheint viele Probleme verursachen Für viele beliebte Webanwendungen.

  • Warum ist ReflexionSermission standardmäßig mit mittlerem Vertrauen deaktiviert?
  • Welches Risiko stellt die Reflexion in einer gemeinsamen Hosting -Umgebung dar?

Als zufällige Referenz siehe MSDN: So verwenden Sie Medium Trust in ASP.NET 2.0

War es hilfreich?

Lösung

Reflection ermöglicht böswilligen Code, alle Arten von Geheimnissen zu inspizieren: nicht so viel geistiges Eigentum (wenn auch sicher das auch), aber Daten sollten privat und sicher sein, wie Verbindungszeichenfolgen, Passwörter, Bankkontosendaten usw.

Natürlich enthüllen viele Programme diese Daten selbstverständlich durch noch stärker beeinträchtige Vektoren, aber es gibt keinen Grund, die Angriffsfläche einer Anwendung zu erhöhen.

Bearbeitet, um einige Gespräche aus den Kommentaren zu bringen:

Es ist wahrscheinlich wahr, dass das eigentliche Risiko uneingeschränkter Zugriff auf das Dateisystem ist, was die Reflexion in eine echte Gefahr macht. Wenn ein schlechter Schauspieler eine Montage (oder etwas, das in eine Baugruppe zusammengestellt wird) in Ihr virtuelles Verzeichnis einbeziehen kann, sind Sie in Schwierigkeiten, wenn er eine Reflexionsgenehmigung hat. (In diesem Fall gibt es auch andere potenzielle Probleme, aber das sollte diese bestimmte Sicherheitsanfälligkeit nicht reduzieren.)

In einer gemeinsamen Hosting -Umgebung ist dies nur schwerer zu verhindern, obwohl es sicherlich nicht unmöglich ist. Vielleicht lohnt es sich, diese Frage zu postieren Serverfault um zu sehen, was die guten Leute dort zu sagen haben.

Andere Tipps

Ich habe noch nie etwas "Schlimmes" gefunden, das ein Benutzer mit Reflexion in der Lage sein wird. Die Leute haben Angst, weil Sie Methoden aufrufen, die als privat oder geschützt sind, aber nach dem, was ich gesehen habe, verhängt keines von ihnen ein echtes Risiko.

Höchstwahrscheinlich ist es zumindest teilweise eine Verkaufstechnik, um Sie dazu zu bringen, für (semi-) dediziertes Hosting auszuschalen :)

Ich fand den folgenden MSDN -Artikel zu diesem Thema:

Sicherheitsüberlegungen zur Reflexion

Dieser Artikel spiegelt Jeffs Antwort an:

Reflection bietet die Möglichkeit, Informationen über Typen und Mitglieder zu erhalten und zugänglich zu machen. Der Zugriff auf nicht öffentliche Mitglieder kann ein Sicherheitsrisiko schaffen. Der Code, der auf nicht öffentliche Mitglieder zugreift, erfordert daher die Reflexionsperre mit den entsprechenden Flags.

Ich glaube jedoch nicht, dass dieses Risiko zwischen den Hosting -Konten des Kunden genutzt werden kann. Es scheint, dass dies nur ein persönliches Risiko darstellen würde. Zum Beispiel konnte ich mit Reflection meine eigenen Versammlungen in meiner Hosting -Umgebung untersuchen. Andere Kunden konnten jedoch keine Reflexion verwenden, um zu erkunden mein Versammlungen. Sie konnten nur erforschen ihr Versammlungen.

Dies könnte ein Problem für eine einzelne Webanwendung darstellen, an der mehrere Entwicklungsteams beteiligt sind. Ein Entwicklungsteam könnte Reflection nutzen, um die Versammlungen eines anderen Entwicklungsteams zu untersuchen.

Dies ist jedoch ein seltenes Szenario für eine gemeinsame Hosting -Umgebung. Die meisten gemeinsam genutzten Hosting -Websites umfassen ein sehr kleines Team, das vollen Zugriff hat alle der Code. Mit anderen Worten, es gibt keine Geheimnisse. Solange die Montage vor anderen gemeinsamen Hosting -Kunden sicher ist, ist dies kein Problem.

Das Aktivieren der Reflexion sollte kein Risiko für die meisten gemeinsam genutzten Hosting -Webanwendungen darstellen:

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

Bitte korrigieren Sie mich, falls ich falsch liege.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top