Hallo,
ich arbeite gerade an einem größeren Framework und bin auf ein konzeptionelles Problem gestoßen. Das Framework dient als Grundlage für mehrere Anwendungen die teilweise auch von Dritten erweitert werden sollen. Hierfür möchte ich ein Modulsystem integrieren, dass es ermöglicht, über verschiedene Repositories Funktionalitäten nachzuinstallieren. Soweit eigentlich kein Problem.
Das Problem ist jetzt aber, dass ich die Berechtigungen der verschiedenen Module eingrenzen möchte. Das heißt konkret, ich möchte z.B. bestimmen können, dass das Modul über den database abstraction layer des Frameworks nur auf bestimmte Datenbanken/Tabellen zugreifen kann. Das könnte ich mit einem entsprechenden Rechtesystem vermutlich auch noch irgendwie bewerkstelligen.
Jetzt suche ich aber nach Möglichkeiten, dass die Module nur Schnittstellen aus dem Framework nutzen dürfen und nicht z.B. selbst eine Datenbankverbindung aufbauen und damit Zugriff auf Daten haben, die sie eigentlich nichts angehen.
Eine langfristige Möglichkeit wäre vermutlich das Sandboxing der Module durch die Einführung einer abstrahierenden Sprache, die dann in PHP geparst wird. Aber eigentlich möchte ich vermeiden, dass die Entwickler sich neben dem Framework noch in eine Pseudosprache einarbeiten müssen.
Kennt ihr entsprechende Ansätze für das Problem? Was würdet ihr vorschlagen?
mfg
Link
ich arbeite gerade an einem größeren Framework und bin auf ein konzeptionelles Problem gestoßen. Das Framework dient als Grundlage für mehrere Anwendungen die teilweise auch von Dritten erweitert werden sollen. Hierfür möchte ich ein Modulsystem integrieren, dass es ermöglicht, über verschiedene Repositories Funktionalitäten nachzuinstallieren. Soweit eigentlich kein Problem.
Das Problem ist jetzt aber, dass ich die Berechtigungen der verschiedenen Module eingrenzen möchte. Das heißt konkret, ich möchte z.B. bestimmen können, dass das Modul über den database abstraction layer des Frameworks nur auf bestimmte Datenbanken/Tabellen zugreifen kann. Das könnte ich mit einem entsprechenden Rechtesystem vermutlich auch noch irgendwie bewerkstelligen.
Jetzt suche ich aber nach Möglichkeiten, dass die Module nur Schnittstellen aus dem Framework nutzen dürfen und nicht z.B. selbst eine Datenbankverbindung aufbauen und damit Zugriff auf Daten haben, die sie eigentlich nichts angehen.
Eine langfristige Möglichkeit wäre vermutlich das Sandboxing der Module durch die Einführung einer abstrahierenden Sprache, die dann in PHP geparst wird. Aber eigentlich möchte ich vermeiden, dass die Entwickler sich neben dem Framework noch in eine Pseudosprache einarbeiten müssen.
Kennt ihr entsprechende Ansätze für das Problem? Was würdet ihr vorschlagen?
mfg
Link
Kommentar