Einzelne Funktion aus Datei importieren

Hallo allerseits

Wie kann ich eine einzelne Funktion, deren Name ich kenne aus einer andern Datei includen, ohne den ganzen Rest mitzubekommen (Sicherheitsaspekt ist wichtig: kritische Funktionen sollen bei einer Minderberechtigung gar nicht zur Verfügung stehen)?

Theoretisch könnte ich:
PHP:
include 'externesfile.php';
$somearray = get_defined_functions();
runkit_function_remove( /* alles aus $somearray['users'] was mir nicht passt */   );

Dann hätte ich genau die Funktionen geladen, die ich will.

Gibt es hierfür keine eingebaute Lösung ohne den ganzen Aufwand?

grz sadi
 
Zuletzt bearbeitet:
include() bindet den Source-Code aus der zu includeten Datei an der Stelle im Source ein, an dem include() gerufen wird. Du hast keine Möglichkeit, an dieser Stelle zu sagen: "Ich will nur einen Teil des Source-Codes".

Das einzige, aber wirklich böse, was ich mir vorstellen kann, wäre die einzubindende Datei mittels fopen(), fread() und anschließendem eval() einzuschränken. Ich habe es nicht getestet. Laut einschlägigen Websites funktioniert ini_set() auf die Option 'disable_functions' auch nicht unbedingt.
 
Danke für die Ratschläge.
Ich denke, ich werde entweder per "create_function" einen String aus einem File auslesen (ist halt langsam und je nach parser unsicher) oder jede Funktion in eine einzelne Datei packen.

Das mit dem während der Laufzeit Rechte auslesen funktioniert nicht, da es sich um eine Plugin-API handelt. Meine Lösung sollte unsichere Plugins, die Funktionen direkt callen verhindern.
 

Neue Beiträge

Zurück