Thread Vergleiche mit 0, PHP gegen Perl und anderes... (71 answers)
Opened by rosti at 2012-12-29 13:07

topeg
 2012-12-29 17:28
#164487 #164487
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Beispiele für ein sinnvolles Rechtemanagement im Interpreter?

Im allgemeinen wir das eine "Sandbox" genannt. Kann aber mehr Möglichkeiten haben und feiner granulierte Rechte besitzen. Das ist etwas anders als die Rechte, die bei OOP durch Vererbung möglich sind. Solange der Speicher nicht isoliert ist, kann man von anderer Stelle darauf zugreifen. Das Stichwort dazu ist "Introspection"

Ein klassisches Beispiel:
Du hast Code den du ausführen möchtest, aber bist dir nicht sicher ob er Schadcode enthalten könnte. Das kann z.B. der Code aus einer Übungsaufgabe sein. Du Packst diesen in eine Sandbox und erlaubst nur ganz bestimmte Zugriffe. Ähnliche Probleme haben WebHoster.

Anderes Beispiel.
Angenommen du hast ein Modul das mit Geld hantiert. Du willst auf keinen Fall das von außen in diesen Code eingegriffen wird. Du weißt aber auch nicht wo und wann der Code Verwendung finden wird. Du musst sicherstellen, das der Code geschützt ausgeführt wird. Hier wird die Sandbox zur Blackbox.

Es gibt zwei unterschiedliche Ansätze das zu lösen. Der Klassische ist eine Interpreterinstanz in einen eigenen Prozess zu packen und damit zu kommunizieren. Damit überlässt man dem OS das abtrennen. Das ist sehr sicher und einfach zu lösen. Der Nachteil ist das die Kommunikation immer über das OS erfolgt und mitunter sehr langsam ist. Auch sind die Überwachungsmöglichkeiten eingeschränkt. Und es ist nicht immer sichergestellt das man einen neuen Prozess tatsächlich starten kann.
Der andere Weg ist, das der Interpreter selbst alle Speicherzugriffe überwacht und mit einem Rechtemanagement abgleicht. Das ist schneller und erlaubt eine umfangreiche Kontrolle.

View full thread Vergleiche mit 0, PHP gegen Perl und anderes...