Beschränken Sie den Plugin-Zugriff auf das Dateisystem und das Netzwerk über die appdomain

8

Ich habe vor einiger Zeit gefragt, wie ich den Zugriff auf Plugins einschränken kann (ich möchte verhindern, dass sie auf die Festplatte oder das Netzwerk schreiben) und ich wurde angewiesen, AppDomain . Ich habe gesucht und versucht und versagt, wie man das funktioniert.

Kann jemand etwas Informationen zur Verfügung stellen, damit ich anfangen kann, setzen Sie einfach eine AppDomain, die nicht erlaubt, in die Datei oder das Netzwerk zu schreiben.

    
EKS 31.08.2009, 12:28
quelle

3 Antworten

5

Ich denke, das ist was du brauchst, wenn ich deinen Punkt richtig verstehe.

%Vor%

Ist das genauer gesagt was du meintest?

Beachten Sie, dass Sie möglicherweise eine Zeichenfolge mit den Pfaden angeben, auf die das Plugin keinen Zugriff haben soll. Sie können dies angeben, wenn Sie die neue Instanz der FileIOPermission-Klasse initialisieren.

Lass es mich wissen, wenn das hilft. : -)

    
Will Marcouiller 01.09.2009, 17:08
quelle
15

Für .net Framework 4.0 folgen Sie bitte dem folgenden Code von diesem MSDN-Artikel.

Das folgende Beispiel implementiert die Prozedur im vorherigen Abschnitt. In diesem Beispiel enthält ein Projekt namens Sandboxer in einer Visual Studio-Projektmappe auch ein Projekt namens UntrustedCode, das die Klasse UntrustedClass implementiert. In diesem Szenario wird davon ausgegangen, dass Sie eine Bibliotheksassembly heruntergeladen haben, die eine Methode enthält, von der erwartet wird, dass sie wahr oder falsch zurückgibt, um anzugeben, ob es sich bei der von Ihnen angegebenen Nummer um eine Fibonacci-Nummer handelt. Stattdessen versucht die Methode, eine Datei von Ihrem Computer zu lesen. Das folgende Beispiel zeigt den nicht vertrauenswürdigen Code.

%Vor%

Das folgende Beispiel zeigt den Sandboxer-Anwendungscode, der den nicht vertrauenswürdigen Code ausführt.

%Vor%     
Babar 11.04.2011 12:52
quelle
0

Wenn Sie Plugins verwenden, wissen Sie vielleicht etwas über Proxies.

Beim Laden Ihrer Assembly über einen Proxy können Sie die Sicherheitsrichtlinienebene für diese bestimmte Assembly über die LoadAssembly () -Methode angeben, wenn ich mich richtig erinnere. Mit anderen Worten, dies geschieht durch Reflexion.

Ich weiß, dass meine Antwort nicht sehr detailliert ist, aber ich hoffe, dass sie Ihnen eine Vorstellung davon geben wird, wo Sie nach Ihrer Lösung suchen sollten. Ich werde nach weiteren Einzelheiten suchen, damit ich besser helfen kann. =)

Ich hoffe, Sie werden Ihre Ergebnisse teilen, wenn Sie es getan haben.

    
Will Marcouiller 31.08.2009 16:57
quelle

Tags und Links